第一個問題是,vs有沒有能告訴我一個字串的位元組數的函式?
第二個問題是,字串內的中文,符號,數字,英文是不是都占兩位元組?
uj5u.com熱心網友回復:
具體占多少位元組要看用的什么編碼Encoding.UTF8.GetByteCount(" ")
UTF8的編碼是這樣的,其他的也類似
uj5u.com熱心網友回復:
這個需要 轉成位元組陣列 然后 獲取位元組陣列的長度 編碼不同 長度也不同, 一般常用UTF8 編碼var arr=Encoding.UTF8.GetBytes(str)
arr.length 就是 位元組數
uj5u.com熱心網友回復:
大佬有點問題啊
string str = "123";
var arr = Encoding.UTF8.GetBytes(str);
Console.WriteLine(arr.Length);
Console.ReadKey();
你看看是這么寫的嗎?
為什么我輸出的是字符數?
uj5u.com熱心網友回復:
那一般用的是什么編碼?
uj5u.com熱心網友回復:
大佬還有啊,我輸出了一下他給我顯示的是一個位元組陣列,然后就給他這么寫了,結果報錯了這怎么回事呢?
string str = "123";
byte[] a Encoding.UTF8.GetBytes(str);
Console.WriteLine(a);
Console.ReadKey();
uj5u.com熱心網友回復:
常見的有UTF8,web上基本都是這一種,vs的編輯器保存的代碼檔案也是這個
GBK/GB2312,這是中文windows系統默認編碼
Unicode,.net字符/串在記憶體中都是這種編碼
uj5u.com熱心網友回復:
具體占多少位元組要看用的什么編碼
Encoding.UTF8.GetByteCount(" ")
UTF8的編碼是這樣的,其他的也類似
大佬還有啊,我輸出了一下他給我顯示的是一個位元組陣列,然后就給他這么寫了,結果報錯了這怎么回事呢?
string str = "123";
byte[] a Encoding.UTF8.GetBytes(str);
Console.WriteLine(a);
Console.ReadKey();
用GetByteCount就可以獲取位元組個數了,GetBytes會獲取實際的位元組陣列
uj5u.com熱心網友回復:
?????????????????
有這么麻煩嗎?
常規上 (大部分編譯器):
一個字符占一個位元組
一個字串幾個字符就是幾個位元組了
ASCII:
英文字符 1個位元組,漢字兩個位元組
UTF
英文一個位元組,漢字三個位元組
UniCode
英文兩位元組,漢字兩位元組
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/124807.html
標籤:C#
