это показано как ’
Это символ U+2019 ПРАВАЯ ОДИНАРНАЯ КАвычка.
Случилось так, что вам была отправлена последовательность символов ’s
в кодировке UTF-8, которая выходит в виде байтов:
’ s
E2 80 99 73
Затем эта последовательность байтов была неправильно интерпретирована, как если бы она была закодирована в кодовой странице Windows 932 (японский; более или менее Shift-JIS):
E2 80 99 73
窶 冱
Таким образом, в этом конкретном случае вы можете восстановить строку ’s
, сначала кодируя символы в байты cp932, а затем декодируя эти байты обратно в символы, используя UTF-8.
Однако это не решит вашу настоящую проблему, заключающуюся в том, что строки изначально были прочитаны неправильно. В этом случае вы получили 窶冱
, потому что последовательность байтов UTF-8, полученная в результате кодирования ’s
, также оказалась допустимой последовательностью байтов Shift-JIS. Но это не относится ко всем возможным последовательностям байтов UTF-8, которые вы можете получить. Многие другие персонажи будут безвозвратно искалечены.
Вам нужно найти, где байты считываются в систему и декодируются как Shift-JIS, и исправить это, чтобы вместо этого использовать UTF-8.
person
bobince
schedule
27.03.2011