Мне кажется, что вам не хватает репозитория google()
, чтобы получить зависимость.
Вот ссылка на файл pom, который вы ищете: https: //dl.google.com/dl/android/maven2/com/android/tools/testutils/26.1.0-alpha01/testutils-26.1.0-alpha01.pom
Я столкнулся с той же проблемой и решил ее, установив Collation в utf8_general_ci для каждого столбца.
Странно, я обнаружил, что УДАЛЕНИЕ &characterEncoding=UTF-8
из JDBC url
сделал трюк для меня с аналогичными проблемами.
Основываясь на моих свойствах,
jdbc_url=jdbc:mysql://localhost:3306/dbName?useUnicode=true
, я думаю это поддерживает то, что сказал @Esailija выше, то есть мой MySQL, который действительно 5.5, выясняет свой собственный любимый вкус кодировки UTF-8.
(Заметьте, я также указываю InputStream
Я читаю с UTF-8
в java-коде, что, вероятно, не больно) ...
Я полагаю, что MySQL не считает это действительным текстом UTF8. Я попробовал вставку в тестовую таблицу с тем же определением столбцов (соединение с mysql-клиентом также было UTF8), и хотя он вставлял, данные, которые я получил с клиентом MySQL CLI, а также JDBC, неправильно отображали значения. Чтобы убедиться, что UTF8 работает правильно, я вставил «ö» вместо «o» для obama:
johan@maiden:~$ mysql -vvv test < insert.sql
--------------
insert into utf8_test values(_utf8 "walmart öbama
Как я решил свою проблему.
У меня был
?useUnicode=true&characterEncoding=UTF-8
В моем соединении hibernate jdbc url и я изменили строковый тип данных на longtext в базе данных, который раньше был varchar.
Добавьте строку useUnicode=true&characterEncoding=UTF-8
к URL-адресу jdbc.
В вашем случае данные не отправляются с использованием кодировки UTF-8
.
У меня была одна и та же проблема, и после тщательного изучения всех кодировок и выяснения, что с ними все в порядке, я понял, что искаженное свойство, которое у меня было в моем классе, было аннотировано как @Column вместо @JoinColumn (javax.presistence; спящий режим), и он все ломал.
execute
show VARIABLES like "%char%”;
find character-set-server, если не utf8mb4.
установить его в my.cnf, например
vim /etc/my.cnf
добавить одну строку
character-set-server = utf8mb4
при последнем перезапуске mysql
У вас есть EXTRATERRESTRIAL ALIEN (U+1F47D)
и BROKEN HEART (U+1F494)
, которые не находятся в базовой многоязычной плоскости. Они не могут быть даже представлены в java как один символ, "
В общем случае для сохранения символов, требующих 4 байта, вам необходимо обновить набор characher и сортировку для utf8mb4
:
alter table <some_table> convert to character set utf8mb4 collate utf8mb4_unicode_ci
В моей разработке enviromnt для # 2 Я предпочитаю устанавливать параметры в командной строке при запуске сервера: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
btw, обратите внимание на поведение коннектора / J с SET NAMES 'utf8mb4'
:
Не выдавайте имена наборов запросов с помощью коннектора / J, так как драйвер не обнаружит, что набор символов изменился, и будет продолжать использовать набор символов, обнаруженный во время начальной настройки соединения.
blockquote>И не следует устанавливать параметр
characterEncoding
в URL-адрес соединения, поскольку он переопределит настроенную серверную кодировку:Чтобы переопределить автоматически обнаруженную кодировку на стороне клиента, используйте свойство characterEncoding в URL-адресе, используемом для подключения к серверу.
< / BLOCKQUOTE>