如何最好地计算 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 中的文本字节的主要内容,如果未能解决你的问题,请参考以下文章

如何计算java中textArea中段落的行数? [复制]

如何利用JS代码选取textarea中的指定行

如何通过使用 jQuery 拖动其右下角来调整文本输入框的大小(如 textarea)?

“textarea”中的 JavaFX 8 计数行

html 中textarea完整用法

将 textarea 限制为“适合”的文本