.NET中的编码问题

时间:2011-07-18 12:06:05

标签: c# unicode encoding

我需要对日文字符进行编码和解码。我尝试使用JAVA并且使用“Cp939”编码工作正常,但无法在.NET中找到该编码。 932编码不对所有字符进行编码,因此我需要找到一种在.NET中实现939编码的方法。

Java代码:

convStr = new String(str8859_1.getBytes("Cp037"), "Cp939");

.NET:

bytesConverted = Encoding.Convert(Encoding.GetEncoding(37),
                                  Encoding.GetEncoding(932), bytesConverted);
// This result is a junk of characters and is totally different
// from the expected output 'ニツポンバ'
convStr = Encoding.GetEncoding(1252).GetString(bytesConverted);

2 个答案:

答案 0 :(得分:2)

编码的字节在编码932中,那么为什么在将编码的字节转换为字符串时使用编码1252?

以下内容应该有效:

bytesConverted = Encoding.Convert(Encoding.GetEncoding(37),
                                  Encoding.GetEncoding(932), bytesConverted);
// This result is a junk of characters and is totally different
// from the expected output 'ニツポンバ'
convStr = Encoding.GetEncoding(932).GetString(bytesConverted);

答案 1 :(得分:0)

这是一个错误还是您输入的方式?

bytesConverted = Encoding.Convert(Encoding.GetEncoding(37), 
    Encoding.GetEncoding(932), bytesConverted);

应该是:

bytesConverted = Encoding.Convert(Encoding.GetEncoding(37), 
    Encoding.GetEncoding(939), bytesConverted);

当然?