使用以下代码块保存具有所选编码的文件。在文本编辑器中打开文件时,它会将编码显示为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();
}
有人可以帮忙吗?
由于
答案 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多字节编码。