在c#裡面我們可以通過字串的length屬性讀取字串的長度,但眾所周知,通過這個屬性讀出來的話不管中文還是英文或者數字,乙個字就是乙個長度,這並不是我們想要的結果。正確的方法應該是指定編碼格式,然後通過編碼的getbytes方法來讀取長度。於是寫了乙個控制台程式用於比較各種編碼讀取長度的不同,**如下:
c#**?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
string
text =
" 【中文】(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 常用 乙個字母,數字...