Не английские символы в HTML искажаются при просмотре файла с помощью tomcat - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть веб-приложение, работающее на Tomcat, и в его рабочем каталоге у меня есть несколько HTML-файлов, которые содержат текст с некоторыми неанглийскими символами. Из веб-приложения есть ссылка для просмотра этого файла, и когда файл просматривается по этой ссылке, содержимое файла искажается. т.е. символы OpenPGM 組播 數據 傳輸 отображаются как OpenPGM çµ „æ'š • ¸æ “šå‚³è¼¸

Вот скриншоты для справки: При доступе по URL-адресу tomcat

При доступе путем открытия файла с помощьюбраузер

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

Такое поведение заставило меня поверить, что проблема в том, как tomcat отображает данные.

До сих пор я проверял кодировку файлов, установленную в JAVA_OPTS (которая является UTF-8), я даже проверял tomcat server.xml на наличие параметра URIEncoding, а также UTF 8 (хотя он и для URI ине содержимое файла).

Любая помощь по этому вопросу будет высоко ценится!

1 Ответ

0 голосов
/ 04 ноября 2019

Для тех, кто ищет ответ. Вы можете установить кодировку символов ответа, возвращаемого tomcat. Таким образом, в моем случае из файла web.xml я проверил, в какой фильтр входил мой запрос, и в момент возврата ответа я добавил

response.setCharacterEncoding ("UTF-8");

Это привело к появлению заголовков ответа (на запрос, сделанный tomcat для файла), содержащего информацию кодировки, которая правильно отобразила страницу.

Надеюсь, это кому-нибудь поможет!

...