Проблема с кодировкой в ​​.NET - PullRequest
0 голосов
/ 18 июля 2011

У меня есть требование для кодирования и декодирования японских символов.Я попытался в JAVA, и он работал нормально с кодировкой "Cp939", но не могу найти эту кодировку в .NET.Кодировка 932 не кодирует все символы, поэтому мне нужно найти способ реализации кодировки 939 в .NET.

Код 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 ]

2 голосов
/ 18 июля 2011

Закодированные байты находятся в кодировке 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);
0 голосов
/ 18 июля 2011

это ошибка или просто как вы ее набрали?

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

должно быть:

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

Конечно?

...