newStr = Encoding.Default.GetString(Encoding.Default.GetBytes(str)翻譯社 0, selLen)
此時利用
len = Encoding.Default.GetByteCount(str)
可獲得實際字串的Byte長度(中文字及全形字為2 bytes)
.Net較量爭論中英文字串長度
.Net於程式中常需要利用到計較字串長度
一般利用length計算之
如:
dim str as String
dim len as Integer
str="test"
len = str.length
此時len=4,
會以字數較量爭論而非計算byte
此時len=4
而當碰到中文時,環境如下:
此時len=9,
豈論中英文都以一個字較量爭論
而如須擷取固定長度之字串可以使用
Encoding.Default.GetBytes(str)獲得字串Bytes
Encoding.Default.GetString(strbytes, index, count) 獲得從index開始之count長度byte的字串
傍邊英文混合時亦如斯
str = "I Love 炎天"
len = str.length
將字串轉為Bytes後在擷取,以下
Dim newStr as String
Dim selLen as Integer = 10
而因為資料貯存的關係,我們經常需要取的字串的真正長度,而非字數
在全英文及全中文字串中,string.length還算足以使用,但須肯定英文中無全形半形參雜
傍邊英文混同或全半形皆有之字串,string.length就不足以應付