UTF-8 хранится в виде вопросительных знаков в БД MySQL - PullRequest
0 голосов
/ 31 августа 2018

У меня есть база данных MySQL, которая была создана как utf8mb4 (с сопоставлением utf8mb4_collate_ci), к которой я обращаюсь через некоторые страницы JSP. Все страницы JSP хранятся в формате UTF-8 и содержат следующие теги:

<%@ page contentType="text/html; charset=utf-8" %>

<meta http-equiv="Content-type" content="text/html; charset=utf-8">

Используя MySQL Workbench, я могу хранить не-ASCII текст в БД и отображать его, а на страницах JSP я могу правильно отображать сохраненный текст. Однако, когда я пытаюсь вставить новые строки, содержащие не-ASCII текст со страницы JSP, они в конечном итоге сохраняются как «??????» в базе данных (и отображается как таковой, независимо от того, выбран ли он из JSP или из MySQL Workbench). Если я отображаю текст, который вставляю как часть страницы JSP, он корректно отображается в моем браузере.

Единственное, о чем я могу думать, это то, что сетевое соединение JSP-to-MySQL каким-то образом использует неправильную кодировку, но я совершенно сбит с толку, как и почему.

Любой совет приветствуется!

1 Ответ

0 голосов
/ 31 августа 2018

Проблема была в кодировке JSP-to-MySQL. Использование «show variable» показало, что «character_set_server» был виновной стороной, для которого было установлено значение «latin1» вместо «utf8». Комментарий Мадхура Бхайи помог мне найти некоторые ссылки на другие страницы, которые советовали добавить «? CharacterEncoding = utf8» в строку подключения, чтобы переопределить кодировку подключения по умолчанию на сервере. Это решило проблему. Спасибо, Мадхур!

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