MySQL 表不是 UTF-8,即使我指示 Hibernate 使用 UTF-8 创建它们

标签 mysql hibernate utf-8 spring-boot

我正在使用 Spring Boot 应用程序,尽管我指示 Hibernate 以 UTF-8 格式创建新表,但所有新表均采用 latin1 格式。

spring.jpa.properties.hibernate.connection.characterEncoding=utf-8
spring.jpa.properties.hibernate.connection.CharSet=utf-8
spring.jpa.properties.hibernate.connection.useUnicode=true

我正在使用 Hikari。

最佳答案

我的数据库有 latin1 编码:

SELECT @@character_set_database, @@collation_database;

首先修复数据库:

foreach table: ALTER TABLE @table CONVERT TO CHARACTER SET utf8;
ALTER DATABASE javabg CHARACTER SET utf8 COLLATE utf8_unicode_ci;

确保所有连接均采用 utf8 - 编辑 my.cnf:

[mysqld]
#mist: set default encoding to utf-8
init-connect='SET NAMES utf8'
character-set-server = utf8
collation-server = utf8_general_ci

关于MySQL 表不是 UTF-8,即使我指示 Hibernate 使用 UTF-8 创建它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061227/

相关文章:

mysql - 如何修复这个简单的 MySQL 查询

php - "Undefined Variable"尝试读取行时

Php - 如何根据url调整内容

sql - 根据条件选择多个Hibernate import.sql

android - 读取包含 åäö 的 Assets 中的文本文件

MySQL - 使用 JOIN 从表中选择最低值

java - 如何从可用作自定义实体 ID 生成器中实体 ID 的对象属性生成 UID?

java - 如何根据属性区分 Hibernate 中的两个查询?

c++ - 当文本位于编辑控件中时,GetWindowTextLength 返回 0

csv - 如何通过 Pandas 数据框读取包含 utf-8 值的 .csv 文件