如何最好地计算 TextArea 中的文本字节
Posted
技术标签:
【中文标题】如何最好地计算 TextArea 中的文本字节【英文标题】:How to best calculate the bytes of text in a TextArea 【发布时间】:2011-04-05 13:11:53 【问题描述】:我需要找到一种方法来准确计算特定文本区域内文本的字节大小。我在 .Net 中工作,所以我可以访问这些库,但我更喜欢 javascript 解决方案。每个字符值多少字节?什么是最有效的计数和乘法方法?还是我完全错过了更好的方法?
编辑:我正在尝试确定已粘贴到 textarea 中的一段 Javascript 的下载大小。我能找到的最接近这个的是http://bytesizematters.com/。我不想仅仅提升他们的代码,特别是因为我不完全理解它。
【问题讨论】:
根据编码,所有字符可以是相同的字节数,但不一定(我不太确定哪些编码的字节大小是多少;我相信 ASCII 每个字符使用 1 个字节) ,所以我不建议只计算和相乘 这个相关问题在 Borgar 的回答中包含一个很好的代码示例:***.com/questions/1240408/… ASCII、Win 1252 和 ISO-8859-1 每个字符有 1 个字节,UTF-8 每个字符有 1、2、3 或 4 个字节,UTF-16 每个字符有 2 或 4 个字节。您需要哪种编码的字节大小? 我实际上正在做的是让用户粘贴 Javascript 以确定下载大小,如果该 Javascript 被放置在他们的网站上。 这取决于应用到它的压缩。 【参考方案1】:我想你的答案就在这里
计算.aspx:
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>
</body>
然后双击设计视图上的按钮以在代码隐藏文件(Calculate.aspx.cs)中定义事件处理程序,然后将以下代码添加到方法中
protected void Button1_Click(object sender, EventArgs e)
Label1.Text = StrToByt(TextBox1.Text).Length.ToString();
最后,您必须在同一个文件中定义刚刚调用“StrToByt”的神秘方法,定义此方法,该方法将字符串 str 作为参数并通过“System.Text.UTF8Encoding”对象设置其编码然后将输出作为字符串返回,我们将通过 Length 属性进行计数
public static byte[] StrToByt(string str)
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
PS:我研究了一下,发现常见的编码是 UTF-8,但如果你认为不是这样,你可以编辑编码对象而不是“System.Text.UTF8Encoding”,你可以输入“System.Text. "您会在 Text 命名空间中找到所有可用的编码类型
如果您仍然感到困惑,我可以发布完整的代码,希望对您有所帮助! =)
【讨论】:
以上是关于如何最好地计算 TextArea 中的文本字节的主要内容,如果未能解决你的问题,请参考以下文章