【问题标题】:How to convert string encoded in windows-1250 to unicode?如何将在 windows-1250 中编码的字符串转换为 unicode?
【发布时间】:2010-04-23 14:53:30
【问题描述】:

我从 Windows-1250 代码页中的一些 dll(它是一些外部数据源的包装器)接收字符串,我想将它们正确(作为 unicode)插入到 SQL Server 数据库中的表中。由于数据库中应保存该数据的特定行是 NVarchar 类型,因此我只需要将其在我的 C# 代码中转换为 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);
}

当我将此返回的字符串插入表时,我没有得到正确的字母,例如 Đ、đ、Č、č、Ć 或 ć。

请帮忙! :)

【问题讨论】:

    标签: c# unicode


    【解决方案1】:

    问题是string string2Encode 已经是 unicode 了。 (UTF-16 是 .net 中的内部编码)所以如果你想要 windows-1250 中的字符串,你必须通过 byte[] 然后做 Encoding.GetEncoding("windows-1250").GetString()

    【讨论】:

      猜你喜欢
      • 2016-12-21
      • 2011-11-05
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 1970-01-01
      • 2023-01-01
      相关资源
      最近更新 更多