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")