C 讀取字串的位元組長度

2022-03-16 00:56:55 字數 2237 閱讀 7863

在c#裡面我們可以通過字串的length屬性讀取字串的長度,但眾所周知,通過這個屬性讀出來的話不管中文還是英文或者數字,乙個字就是乙個長度,這並不是我們想要的結果。正確的方法應該是指定編碼格式,然後通過編碼的getbytes方法來讀取長度。於是寫了乙個控制台程式用於比較各種編碼讀取長度的不同,**如下:

c#**?1

2345

6789

1011

1213

1415

1617

1819

2021

2223

stringtext =" 【中文】(12.21)(ァぁ)[en] ";

var string_len = text.length;

var ascii_len = encoding.ascii.getbytes(text).length;

var default_len = encoding.default.getbytes(text).length;

var bigendianunicode_len = encoding.bigendianunicode.getbytes(text).length;

var unicode_len = encoding.unicode.getbytes(text).length;

var utf32_len = encoding.utf32.getbytes(text).length;

var utf7_len = encoding.utf7.getbytes(text).length;

var utf8_len = encoding.utf8.getbytes(text).length;

var gb2312_len = encoding.getencoding("gb2312").getbytes(text).length;

var strfm=" \t: ";

console.writeline(strfm,"string.length", string_len);

console.writeline();

console.writeline(strfm,"系統預設編碼", default_len);

console.writeline();

console.writeline(strfm,"gb2312編碼", gb2312_len);

console.writeline();

console.writeline(strfm,"ascii編碼", ascii_len);

console.writeline(strfm,"bigendianunicode編碼", bigendianunicode_len);

console.writeline(strfm,"unicode編碼", unicode_len);

console.writeline(strfm,"utf32編碼", utf32_len);

console.writeline(strfm,"utf7編碼", utf7_len);

console.writeline(strfm,"utf8編碼", utf8_len);

列印出來的結果如下:

讀取字串長度

c 關於讀取乙個字串長度 包括空格回車 自用 方法1 include include using namespace std intmain 方法2 include include include include include using namespace std intmain 方法3 inc...

C 獲取字串位元組長度

一 c 獲取字串位元組長度 1.在c 語言中使用string 字串unicode 編碼 2.在c 語言中常用漢字 佔 3個位元組 方式1 使用預設編碼類獲取位元組長度 console.writeline encoding.default.getbytecount 張三 輸出 6 常用 乙個字母,數字...

C 獲取字串位元組長度

一 c 獲取字串位元組長度 1.在c 語言中使用string 字串unicode 編碼 2.在c 語言中常用漢字 佔 3個位元組 方式1 使用預設編碼類獲取位元組長度 console.writeline encoding.default.getbytecount 張三 輸出 6 常用 乙個字母,數字...