gpt4 book ai didi

java - 为什么 java 字符串在 MYSQL 中没有保存为 UTF-8?

转载 作者:行者123 更新时间:2023-11-29 03:02:24 25 4
gpt4 key购买 nike

message = new String(("round " + id).getBytes("UTF-8"));

conn = DriverManager.getConnection("jdbc:mysql://" + host + "/" + db + "?useUnicode=true&characterEncoding=UTF-8&"
+ "user=" + login + "&password=" + password);

当我插入编码为UTF-8 CI的数据库时,得到类似这样的内容������������������ ���� 179,java文件编码是utf-8,我哪里做错了?

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

最佳答案

通常,MySQL 带有一个预定义的系统变量列表。如果要列出它们,可以打开 MySQL 提示符并键入:

mysql> SHOW VARIABLES LIKE  'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | latin1 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

如图所示,MySQL的默认编码是latin1。为了更改它,您需要稍微编辑一下您的 my.cnf 文件并添加以下行:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

当您配置my.cnf 文件并重新启动MySQL 服务器时,您会注意到不同之处。

编辑:您可以像这样为 JDBC 的 DriverManager 设置编码:

DriverManager.getConnection("jdbc:mysql://" + host + "/" + db + "?useUnicode=true&"
+ "user=" + login + "&password=" + password + "&characterEncoding=utf8");

关于java - 为什么 java 字符串在 MYSQL 中没有保存为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21092007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com