Java - китайские символы не отображаются в сгенерированном (.rtf) документе - PullRequest
0 голосов
/ 04 июля 2018

В одном из моих веб-приложений на Java поле описания должно содержать китайские символы. В форме JSP поле разрешает их правильно, как показано на рисунке https://i.stack.imgur.com/6w2K3.jpg, в базу данных данные вставляются как TEST - & # 27979; & # 35797; & # 35828; & # 26126; JSP использует стиль кодировки UTF-8, база данных - MS SQL Server 2016, а тип столбца базы данных - NTEXT. С JSP проблем не возникало, но при создании отчетов (например, .rtf) эти данные отображаются в формате закодированной строки, т.е. TEST - & # 27979; & # 35797; & # 35828; & # 26126; не китайские иероглифы. Тип кодировки UTF-8 используется при создании отчета. Может ли кто-нибудь помочь мне в решении этой проблемы, пожалуйста.

1 Ответ

0 голосов
/ 04 июля 2018

Эти 测 и подобные символы должны быть декодированы. Скорее всего, с JSP вам не нужно было их декодировать, потому что JSP генерировал HTML и выводил этот текст как есть, который выдает действительно экранированные символы HTML.

Но RTF и другие не являются HTML, поэтому то же самое не применимо к ним. Для них вам нужно декодировать символы, прежде чем пытаться их выводить.

StringEscapeUtils Commons-lang предоставит методы для этого. Или вы можете написать свой собственный декодер для него, это почти тривиально просто, если вы не хотите добавлять целую библиотеку просто для этого.

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