2009年7月22日

以Byte單位來計算字串長度的幾種做法(Javascript,C#,VB.Net)

以Byte單位來計算字串長度的幾種做法(Javascript,C#,VB.Net)

一般計算字串長度,有下列幾種:

1.計算字元數,不管中文字,英文字都算一個字元

2.計算Byte數,中文字算2個byte,英文字算1個byte

舉例:

字串為:"我是puma"

1.計算字元數:中文字(2),英文字(4),總共(6)

2.計算Byte數:中文字(4),英文字(4),總共(8)

程式語法

C#

  1. string str = "我是puma";
  2. //一般的字中長度計算,中文字(2),英文字(4),總共(6)
  3. Response.Write(str.Length.ToString());
  4. //利用Byte單位來計算字串長度,中文字(4),英文字(4),總共(8)
  5. Response.Write(System.Text.Encoding.Default.GetBytes(str).Length);

VB.Net

  1. Dim str As String = "我是puma"
  2. '一般的字中長度計算,中文字(2),英文字(4),總共(6)
  3. Response.Write(str.Length.ToString())
  4. '利用Byte單位來計算字串長度,中文字(4),英文字(4),總共(8)
  5. Response.Write(System.Text.Encoding.Default.GetBytes(str).Length)

Javascript









  1. <script type=
    "text/javascript">


  2. //string.Blength() 傳回字串的byte長度

  3. String.prototype.Blength =
    function
    () {

  4. var arr = this.match(/[^\x00-\xff]/ig);

  5. return arr ==

    null
    ? this.length :

    this
    .length + arr.length;

  6. }


  7. var str
    =
    "我是puma";

  8. alert("字元數:"+str.length);
    //中文字(2),英文字(4),總共(6)

  9. alert("byte數:"+str.Blength());
    //中文字(4),英文字(4),總共(8)

  10. </script>


沒有留言:

張貼留言