2010-04-23 22 views
3

我從Windows-1250代碼頁中的某些dll(這是一些外部數據源的包裝)字符串接收,我想正確插入它們(作爲unicode)到SQL Server數據庫中的表。因爲數據庫中應該保存該數據的特定行是NVarchar類型的,所以我只需要將它轉換爲我的C#代碼,並將其作爲參數傳遞給unicode。一切都很好,但我偶然發現轉換步驟。如何將在windows-1250中編碼的字符串轉換爲unicode?

我嘗試以下,但不工作:

private static String getUnicodeValue(string string2Encode) // 
{ 
    Encoding srcEncoding = Encoding.GetEncoding("Windows-1250"); 
    UnicodeEncoding dstEncoding = new UnicodeEncoding(); 
    byte[] srcBytes = srcEncoding.GetBytes(string2Encode); 
    byte[] dstBytes = dstEncoding.GetBytes(string2Encode); 
    return dstEncoding.GetString(dstBytes); 
} 

當我插入這個返回的字符串表,我沒有得到正確的字母像DJ,đ,C,C,C或C 。

請幫忙! :)

回答

8

問題是string string2Encode已經在unicode。 (UTF-16是在.net中的內部編碼)所以,如果你想在Windows-1250中的字符串,你必須通過byte[]然後做Encoding.GetEncoding("windows-1250").GetString()

相關問題