Как минимизировать вопросительные знаки при кодировании строки как Latin-1? - PullRequest
1 голос
/ 10 марта 2009

При кодировании строки Java в Latin-1 (т. Е. Кодировка ISO-8859-1) в настоящее время я преобразовываю немецкий символ β ('\ u03B2') в ß ('\ u00DF') перед выполнением кодирования. Я пытаюсь избежать вопросительного знака в кодировке, где это возможно.

Может кто-нибудь предложить другие не кодируемые символы, которые можно заменить кодируемыми? Или, еще лучше, библиотека Java, которая делает это для меня?

Обновление: Немного предыстории: у меня есть Java-программа, которая экспортирует свои данные в файлы CSV, чтобы их можно было прочитать в стороннем приложении. Клиент пожаловался, что некоторые символы не конвертированы - он привел мне пример «straβe». Хотя технически β является греческим символом бета-версии, быстрый поиск в Google показывает, что довольно много людей используют его для обозначения ß.

Ответы [ 2 ]

1 голос
/ 10 марта 2009

Во-первых, вы уверены, что введенный вами текст правильно введен или закодирован?

u + 03B2 - это "ГРЕЧЕСКОЕ БЕТА ПИСЬМО ГРЕКА", а не немецкий eszett.

u + 00DF - это eszett или "LATIN SMALL LETTER SHARP S"

Java может сопоставить последний с ISO-8859-1, потому что он определен в http://unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT.

Нет способа решить эту проблему вообще - весь смысл Unicode состоит в том, что он содержит (много) символов, которые просто не могут быть представлены в ISO-8859- *.

Я предлагаю составить список всех символов Юникода в ваших данных, которые не перечислены в документе http://unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT. Затем для каждого не нанесенного на карту символа вам придется выбирать подходящие замены из диапазона ISO-8859-1 рукой / глазом.

1 голос
/ 10 марта 2009

U + 03B2 - греческая буква "бета". U + 00DF - это немецкая «диез с». На самом деле не то же самое! Если вы хотите использовать латинский символ, не подойдет ли буква B для & beta;? Небольшая предыстория вашего сценария или вариантов использования поможет составить соответствующие предложения.

В Юникоде есть десятки тысяч глифов, и только некоторые из них могут быть закодированы с помощью Latin-1.

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