编码(932)(SJIS)中的×字符编码错误...导致?字符

时间:2011-11-02 14:15:02

标签: c# encoding

我尝试在SJIS编码的文件中编码×字符......但它没有成功。 我做了类似的事情:

string strJapaneseCross = new string('\uC397',1);

StringBuilder sb = new StringBuilder();
sb.AppendLine(strJapaneseCross);

using (StreamWriter sw = new StreamWriter(Path.Combine(filesPath, "MyInfo.txt"), false, Encoding.GetEncoding(932)))
 {
     sw.Write(sb.ToString());
 }

生成的文件编码不好,而不是文件中的0x817E(对应于SJIS中的×)我有0x3F,代表

我编码的其他日文字符似乎没有任何问题。我做错了什么?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

\ u转义码使用Unicode代码点,而不是它们的UTF-8编码。因此,你实际上要求转换U + C397,这是一个完全不同的角色 - 特别是쎗,一个韩国角色。

×的实际Unicode代码点是U + 00D7,所以你要写:

string strJapaneseCross = new string('\u00D7',1);