2010-08-29 67 views
3

我需要找到一種方法來精確計算特定textarea內文本的字節大小。我在.Net工作,所以我可以訪問這些庫,但我更喜歡Javascript解決方案。每個字符有多少字節?什麼是最有效的計數和乘法方法?或者我完全錯過了一個更好的方法?如何最好地計算TextArea中文本的字節數

編輯:我試圖確定一塊已粘貼到textarea中的Javascript的下載大小。我能找到的最接近的是http://bytesizematters.com/。我不想只解除他們的代碼,特別是因爲我沒有完全理解它。

+0

根據編碼,所有字符可以是相同數量的字節,但不一定(我不確定哪些編碼具有什麼字節大小;我相信ASCII使用每個字符1個字節),所以我不建議只計算和相乘 – codersarepeople 2010-08-29 23:25:10

+1

這個相關的問題包含Borgar的答案中的一個很好的代碼示例:http://stackoverflow.com/questions/1240408/reading-bytes-from-javascript-string – BalusC 2010-08-29 23:32:20

+1

ASCII,Win 1252和ISO-8859 -1每個字符1個字節,UTF-8每個字符有1,2,3或4個字節,而UTF-16每個字符有2或4個字節。你需要一個字節大小的編碼? – Alohci 2010-08-30 00:50:09

回答

1

我認爲你的答案就在這裏

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」。你會在文本名字空間找到所有可用的編碼類型

如果你仍然困惑,我可以發佈完整的代碼,希望它有幫助! =)

+0

非常棒!謝謝。 – 2010-10-02 19:47:14

+0

我的榮幸奧斯曼=) – lKashef 2010-10-03 13:06:28

相關問題