Символы UTF-8 в Eclipse - возможно, проблема с копией и вставкой в ​​Windows - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь интернационализировать приложение для Android.У меня есть набор строк, которые я написал на английском языке, и я использую Google Translate для преобразования их в целевой язык.

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

Подшипника, в градусах к востоку от истинного севера

, что означает

De paliers, comme degrs Estdu nord vrai

и когда я вставляю его в Eclipse, я получаю

De paliers, comme degres S Est du nord vrai

Я проверил и формат файла строк UTF-8, также я проверил, отправив перевод в блокнот, и я получил правильные символы, что наводит меня на мысль, что это как-то связано с Eclipse и Windows 7.У кого-нибудь есть идеи или обходной путь (т.е. будет ли работать редактирование XML-файла вне Eclipse (например, в блокноте)?)

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Ваша строка UTF-8 (символ Ã обозначает ее), но Eclipse интерпретирует ваш файл как, вероятно, Cp1252.Щелкните правой кнопкой мыши по файлу и убедитесь, что кодировка содержимого, используемая Eclipse, (как правило, если не изменена, унаследована от контейнера, для которого по умолчанию обычно используется Cp1252. Контейнер - это настройки проекта / рабочего пространства / всего Eclipse в указанном порядке).Однако некоторые файлы, такие как XML, обрабатываются в соответствии с их содержимым (в заголовке XML указана используемая кодировка).

Обновление

Если вы проверите, что файлфактически интерпретируемый как UTF-8 Eclipse, это означает двойное преобразование.При использовании Cp-1252 М имеет двоичный код 0xC3, а © имеет двоичный код 0xA9.Если вы посмотрите таблицу кодировки UTF-8 , вы обнаружите, что символ é имеет двухбайтовую кодировку 0xC3 0xA9.Иногда при интерпретации данных некоторые преобразования выполняются автоматически (т. Е. При выводе java-строк в другие, так как они изначально всегда имеют формат UTF-16), если известны кодировки источника-назначения.Проблема возникает, когда одна из кодировок неизвестна (ваш случай), и преобразователь должен решить (обычно используя кодировку системы по умолчанию).Это когда вещи начинают путаться.

Вы можете в конечном итоге использовать © в UTF-8, если исходный источник действительно был в UTF-8, но был интерпретирован как Cp1252.Исходная последовательность 0xC3 0xA9 (Ã © в Cp1252 или é в UTF-8) транслируется в 0xC3 0x83 (Ã в UTF-8) и 0xC2 0xC9 (© в UTF-8).

Как можно определить исходную кодировку, если она не указана?Обычно вы не можете.Вот почему большинство кодировщиков UTF-8 делают это двойное преобразование, если вы передаете их обратно (из Cp1252 в UTF-8 и снова в UTF-8 при подаче с предыдущим выходом, но интерпретируете вход как Cp1252), если только вы не используете какую-либо метку вдокумент, сообщающий кодировщику о кодировке (например, BOM , которая, кстати, не поддерживается Eclipse).

0 голосов
/ 24 октября 2015

Просто зайдите в Общие -> Рабочая область и установите кодировку Текстового файла в UTF-8.Кроме того, если вы работаете на удаленном сервере Linux, установите «Новый разделитель строк текстового файла» на Unix.

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