2015-12-29 3 views
0

я следующая строка, что я знаю, предположим, будет отображаться в виде текста на японском языкекак исправить кодировку коррумпированной японский символ

25“ú‚¨“¾‚ȃAƒ‹ƒeƒBƒƒbƒgƒRƒXƒZƒbƒg‹L”O

есть ли способ, чтобы декодировать и перекодировать текст так, он отображает должным образом? Я уже пробовал использовать shift-jis, но не создал читаемую строку.

string main = "25“ú‚¨“¾‚ȃAƒ‹ƒeƒBƒƒbƒgƒRƒXƒZƒbƒg‹L”O.zip"; byte[] mainBytes = System.Text.Encoding.GetEncoding("shift-jis").GetBytes(main); string jpn = System.Text.Encoding.GetEncoding("shift-jis").GetString(mainBytes);

спасибо!

ответ

2

Я думаю, что оригинал Shift-JIS, но вы не показывали, как вы пробовали. Так вот моя попытка повторно закодировать ::

string s1 = "25“ú‚¨“¾‚ȃAƒ‹ƒeƒBƒƒbƒgƒRƒXƒZƒbƒg‹L”O"; 
byte[] bs = Encoding.GetEncoding(1252).GetBytes(s1); 
string s2 = Encoding.GetEncoding(932).GetString(bs); 

И s2 теперь "25日お得なアルティャbトコスセット記念", что выглядит гораздо больше, как японский.

Что я предполагаю, что некоторый массив байтов, представляющий текст Shift-JIS, закодирован, что читается с использованием другой кодировки, может быть, Windows-1252. Поэтому сначала я пытаюсь вернуть исходный массив байтов. Затем я использую правильную кодировку для получения правильного текста.

Несколько замечаний по поводу моего кода:

  • 1252 является числовым идентификатором для Windows-1252, наиболее обычно используются, по-ошибкой кодирование. Но это всего лишь предположение, вы можете попробовать с другими кодировками и посмотреть, имеет ли это смысл.
  • 932 - это числовой идентификатор для Shift-JIS (вы также можете использовать имя строки). Это тоже догадка, но, скорее всего, это правильно.
  • Учтите, что использование неправильной кодировки обычно не является обратимой процедурой, поэтому могут быть символы, которые теряются при переводе.
+0

спасибо rodrigo! что решило мою проблему! Я использовал shift-jis для получения байтов вместо Windows-1252. используя shift-jis в байтах, выдает правильный вывод. еще раз спасибо! – Dili

Смежные вопросы