1. Причины искажения китайского текста

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

2. Места возникновения искажённого текста при веб-разработке и способы их решения

① Искажённый текст запроса

При передаче данных на сервер передаваемые китайские символы могут искажаться.

POST-запрос (тело протокола)

Решение:

request.setCharacterEncoding("UTF-8");

GET-запрос (адресная строка)

Решение: требуется дополнительная настройка в Tomcat (я использую сервер Tomcat).

Настройте следующий код в conf/server.xml Tomcat:

​​​​​​​​​
connectionTimeout="20000"
redirectPort="8443" 
URIEncoding="UTF-8"

② Искажённый текст ответа

Если в динамических веб-страницах, возвращаемых клиенту, появляются китайские символы, может возникнуть искажённый текст.

Решение:

response.setCharacterEncoding("UTF-8");​
response.setContentType("text/html;charset=UTF-8")​