Автоматически сопоставлять символы Unicode с аналогичными символами EBCDIC 1047 - PullRequest
3 голосов
/ 16 августа 2011

Я пытаюсь закодировать строку, содержащую символы, которые не поддерживаются целевой кодировкой ( CP 1047 ).

Существует ли стандартный / общий / простой способ сопоставления этих символов эквиваленту cp1047?

Например, текст содержит причудливый символ двойной кавычки (), и я хочупреобразовать его в прямую двойную кавычку (").

Очевидно, я мог бы просто сделать замену в своем коде, но лучше ли это?Существует ли инструмент с открытым исходным кодом или API, о котором я не знаю?

1 Ответ

2 голосов
/ 17 августа 2011

Если вы хотите кодировать символы Unicode в EBCDIC (CP 1047), то (очевидно) есть UTF-EBCDIC (хотя я не знаю ни одного из существующих инструментов, которые могут преобразовать в это).

В качестве альтернативы, я хотел бы рассмотреть использование нестандартной формы Кодировка процента или Кодировка XML / HTML . Любая из этих двух кодировок, вероятно, будет иметь существующие инструменты для кодирования (такие как Commons Lang StringEscapeUtils ).

Наконец, если вы просто хотите «отобразить» расширенные символы в пространство CP 1047, то, я думаю, у вас осталось сканирование символьной строки источника и построение строки результата из Map<Char, Char> (или Map<Char, String> ), если вы заранее знаете все расширенные символы, с которыми вам приходится иметь дело, и их требуемые эквиваленты / замены.

...