é становится & 195; # 169, а затем становится Ã © Как мне исправить эту проблему кодирования? - PullRequest
2 голосов
/ 01 декабря 2010

У меня есть файл Java в Eclipse, который находится в UTF-8 и имеет несколько строк, содержащих акценты.

В самом файле Java акцент написан и сохранен как é . В xml, который генерируется с использованием скорости, é становится é В pdf, который генерируется с использованием fop и шаблона xsl, вывод отображается как 1009 *

Так что это, вероятно, проблема с кодировкой, и все должно быть в UTF-8. Что странно, так это то, что локально в моей среде Eclipse (Windows), где я запускаю приложение, весь процесс работает, и правильные акценты é отображаются в PDF

Однако, когда приложение создано с помощью maven и развернуто в (среде unix), я вижу проблему, описанную выше.

1 Ответ

3 голосов
/ 01 декабря 2010

Возможно, Eclipse компилирует файл с командной строкой javac, отличной от Maven.

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

javac -encoding utf8 MyCode.java

Я думаю способ исправить это в Maven - добавить это в файл pom.xml:

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>

(я получил это из FAQ от Maven о немного другой проблеме .)

Вместо этого вы можете полностью избежать проблемы кодирования, используя некрасивые escape-последовательности Unicode в вашем Java-файле. é станет \u00e9. Хуже для людей, легче для тостеров. (Как сказал Перлис: «В симбиозе человек-машина человек должен приспосабливаться: машины не могут».)

...