我需要找到一种方法来精确计算特定textarea内文本的字节大小。我在.Net工作,所以我可以访问这些库,但我更喜欢Javascript解决方案。每个字符有多少字节?什么是最有效的计数和乘法方法?或者我完全错过了一个更好的方法?如何最好地计算TextArea中文本的字节数
编辑:我试图确定一块已粘贴到textarea中的Javascript的下载大小。我能找到的最接近的是http://bytesizematters.com/。我不想只解除他们的代码,特别是因为我没有完全理解它。
我需要找到一种方法来精确计算特定textarea内文本的字节大小。我在.Net工作,所以我可以访问这些库,但我更喜欢Javascript解决方案。每个字符有多少字节?什么是最有效的计数和乘法方法?或者我完全错过了一个更好的方法?如何最好地计算TextArea中文本的字节数
编辑:我试图确定一块已粘贴到textarea中的Javascript的下载大小。我能找到的最接近的是http://bytesizematters.com/。我不想只解除他们的代码,特别是因为我没有完全理解它。
我认为你的答案就在这里
Calculate.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”对象,然后返回输出为一个字符串,我们将通过长度属性算
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”。你会在文本名字空间找到所有可用的编码类型
如果你仍然困惑,我可以发布完整的代码,希望它有帮助! =)
非常棒!谢谢。 – 2010-10-02 19:47:14
我的荣幸奥斯曼=) – lKashef 2010-10-03 13:06:28
根据编码,所有字符可以是相同数量的字节,但不一定(我不确定哪些编码具有什么字节大小;我相信ASCII使用每个字符1个字节),所以我不建议只计算和相乘 – codersarepeople 2010-08-29 23:25:10
这个相关的问题包含Borgar的答案中的一个很好的代码示例:http://stackoverflow.com/questions/1240408/reading-bytes-from-javascript-string – BalusC 2010-08-29 23:32:20
ASCII,Win 1252和ISO-8859 -1每个字符1个字节,UTF-8每个字符有1,2,3或4个字节,而UTF-16每个字符有2或4个字节。你需要一个字节大小的编码? – Alohci 2010-08-30 00:50:09