C# 中文字串長度問題

摘要:C# 中文字串長度問題

最近在客戶這邊寫個字串處理的程式~
發生了一個問題~
例如
String strTempA="My Name is 潘建誌";
String strTempB="My Name is JJJ";
strTempA跟strTempB的字串長度都是14~
但是問題來了~strTempA的實際長度是17~
因為中文字的長度是2~那這樣在字串處理上就會出問題~
 
後來搞了一下才解出來~所以就在這分享一下~
 
解法:
當客戶說明第11~20的長度為名子
byte[] bTemp=System.Text.Encoding.Default.GetBytes(strTempA);
String strName=System.Text.Encoding.Default.GetString(bTemp,11,10);
 
這樣就可以根據正確的長度位子來擷取所要的資料了
System.Text.Encoding.Default.GetBytes的意思為將此字串以此系統的編碼方式轉換成BYTE的形式
System.Text.Encoding.Default.GetString的意思為將byte轉成字串然後後面的參數為起始未至,跟長度