【问题标题】:configure utf8 in mysql在mysql中配置utf8
【发布时间】:2012-12-05 09:12:01
【问题描述】:

我确实将数据从一个数据库复制到另一个数据库。第一个 DB 有 cp1251 代码页。

第一步

我确实使用简单的 java 程序将数据从第一个 db 复制到简单的 csv 文件。在从数据库中提取数据期间,控制台输出是可读的。

csv 文件 utf-8 的代码页(我在几个文本编辑器中检查过,所有数据都是可读的,文本编辑器将文件的字符集定义为 utf-8)

java 机器默认字符集是 utf-8 utf8 字符集中的 csv 文件 新的 mysql 数据库在 utf8 文件中

这在 mysql cmd 中的命令状态

Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    cp866
Conn.  characterset:    cp866
TCP port:               3306
Uptime:                 25 min 29 sec

mysql db 中的所有表和字符集都在 utf-8 中

我使用另一个简单的java程序将数据插入mysql

mysql中的数据不可读

mysql服务器配置

[server]

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
collation_server=utf8_unicode_ci
character_set_server=utf8
#skip-character-set-client-handshake
character_sets-dir="C:/Programm/xampp/mysql/share/charsets"

[client]
default-character-set=utf8

在服务器端发现 jvm 使用 utf16 而不是 utf8,这可能是 jdbc 中的preparedstatement 的问题。

【问题讨论】:

  • 显示如何连接到数据库的代码以及如何发送查询的示例。

标签: java mysql utf-8


【解决方案1】:

用于 JDBC 通信的 java 连接字符串:

jdbc:mysql://localhost/MYDB?useUnicode=true&characterEncoding=UTF-8

设置中有重叠/冗余/太多(服务器+客户端+ JDBC-通信), 但这应该适用于 JDBC 部分。

如果问题仍然存在,请重试默认设置,并在 CREATE DATABASE/TABLE/列上指定 UTF-8。

【讨论】:

  • 我也试过了,但没有效果,“mysql db 中的所有表和字符集都在 utf-8 中”db 本身也在 utf-8 中
  • 你在java中有文件操作吗?
猜你喜欢
  • 2017-03-04
  • 1970-01-01
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-18
  • 1970-01-01
相关资源
最近更新 更多