C#使用韩文编码保存文件

时间:2011-07-08 07:53:13

标签: c# file encoding

使用以下代码块保存具有所选编码的文件。在文本编辑器中打开文件时,它会将编码显示为ASCII ..

StringBuilder sb = new StringBuilder();
sb.Append(); // Lots of korean text here

Encoding enc = Encoding.GetEncoding(51949);
using (StreamWriter sw = new StreamWriter(fileName, false, enc))
{
    sw.Write(sb.ToString());
sw.Flush();
sw.Close();
}

有人可以帮忙吗?

由于

4 个答案:

答案 0 :(得分:1)

您必须在保存文件时使用UnicodeEncoding,对于unicode编码,请使用以下代码,并根据需要进行修改。 试试这个:

 UnicodeEncoding unicode = new UnicodeEncoding();

        // Create a string that contains Unicode characters.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside the traditional ASCII code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = unicode.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = unicode.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);

答案 1 :(得分:1)

  

在文本编辑器中打开文件时,它会将编码显示为ASCII ..

文件中没有任何内容告诉文本编辑器编码。

您需要以某种方式提供元数据。通过让用户在文本编辑器中使用一些“使用选定编码打开”选项(如果有),或者在文件中使用不同的编码(例如,UTF-8或带有BOM的-16),包括您需要的代码点,文本编辑器可以检测到。

答案 2 :(得分:1)

尝试更换

Encoding enc = Encoding.GetEncoding(51949);

Encoding enc = Encoding.Unicode;

Encoding enc = Encoding.UTF8;

答案 3 :(得分:0)

您应该使用Encoding.Unicode - 因此输出将包含BOM,并将以Unicode多字节编码。