Декодировать строку S-JIS в UTF-8 - PullRequest
3 голосов
/ 07 января 2011

Я работаю над японским файлом и не знаю языка. Файл закодирован в S-JIS. Теперь я должен преобразовать содержимое в UTF-8, чтобы содержимое выглядело как японский. И тут я совершенно пустой. Я попробовал следующий код, который нашел где-то в Интернете, но не повезло:

byte[] arrByte = Encoding.UTF8.GetBytes(arrActualData[x]);
string str = ASCIIEncoding.ASCII.GetString(arrByte);

Может ли кто-нибудь помочь мне с этим?

Спасибо заранее Кунал

1 Ответ

2 голосов
/ 07 января 2011

В C # следующий код работает для меня.Я хотел попробовать это, чтобы подтвердить мои результаты ниже:

public void Convert()
{
   using (TextReader input = new StreamReader(
     new FileStream("shift-jis.txt", FileMode.Open), 
       Encoding.GetEncoding("shift-jis")))
   {
      using (TextWriter output = new StreamWriter(
        new FileStream("utf8.txt", FileMode.Create), Encoding.UTF8))
      {
        var buffer = new char[512];
        int len;

        while ((len = input.Read(buffer, 0, 512)) > 0)
        {
          output.Write(buffer, 0, len);
        }
      }
   }
}

Здесь показан файл, закодированный в shift-jis (или SJIS / Shift_JIS , они одинаковы), используя JEdit для проверки кодировки (слово в файле - японский текст テ ス ト, означающий test ):
alt text

После запуска кода и открытия файла, записанного в ( utf8.txt ):
alt text

Но следует сказать, что такое преобразование файлов не требует строго знаниялюбой язык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...