2010-04-23 21 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()

相关问题