10bet网址
MySQL Connector/J 5.1开发指南
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 0.6 mb
PDF (A4)- 0.6 mb
HTML下载(TGZ)- 131.1 kb
HTML下载(邮政编码)- 150.3 kb


5.6使用字符集和Unicode

从JDBC驱动程序发送到服务器的所有字符串都自动从本机Java Unicode格式转换为客户机字符编码,包括使用的所有查询Statement.execute ()Statement.executeUpdate ()Statement.executeQuery ()以及所有PreparedStatement而且CallableStatement参数用排除参数设置setBytes ()setBinaryStream ()setAsciiStream ()setUnicodeStream (),setBlob ()

每个连接的编码数

Connector/J支持客户机和服务器之间的单一字符编码,以及服务器返回给客户机的数据的任意数量的字符编码结果集

设置字符编码

客户端和服务器之间的字符编码在连接时自动检测(假设Connector/J连接属性characterEncoding而且connectionCollation没有设置)。您可以使用系统变量在服务器上指定编码character_set_server(有关更多信息,请参见服务器字符集和排序规则).驱动程序自动使用服务器指定的编码。例如,要使用4字节UTF-8字符集使用Connector/J配置MySQL服务器character_set_server = utf8mb4,让characterEncoding而且connectionCollation从Connector/J连接字符串中取出。连接器/J将自动检测UTF-8设置。

要覆盖客户端上自动检测到的编码,请使用characterEncoding属性在连接到服务器的URL中。在指定字符编码时使用java样式的名称。下表列出了MySQL字符集名称及其对应的java风格名称:

表5.3 MySQL到Java的编码名称转换

MySQL字符集名称 java风格字符编码名称
美国信息交换标准代码 us - ascii
繁体 繁体
gbk GBK
sjis SJIS (MySQL服务器< 4.1.11时为Cp932或MS932)
cp932 Cp932或MS932 (MySQL Server > 4.1.11)
gb2312 EUC_CN
里头 EUC_JP
euckr EUC_KR
latin1 Cp1252
latin2 ISO8859_2
希腊 ISO8859_7
希伯来语 ISO8859_8
cp866 Cp866
tis620 TIS620
cp1250 Cp1250
cp1251 Cp1251
cp1257 Cp1257
macroman MacRoman
macce MacCentralEurope

5.1.46及更早版本use utf8

5.1.47及以上版本utf8mb4

utf - 8
ucs2 UnicodeBig

笔记

对于Connector/J 5.1.46及更早版本:为了使用utf8mb4字符集用于连接,服务器必须配置character_set_server = utf8mb4;如果不是这样,什么时候utf - 8用于characterEncoding在连接字符串中,它将映射到MySQL字符集名称use utf8的别名utf8mb3

对于Connector/J 5.1.47及以后版本:

  • utf - 8用于characterEncoding在连接字符串中,它映射到MySQL字符集名称utf8mb4

  • 如果连接选项connectionCollation也被设置在characterEncoding和它是不相容的,characterEncoding将被覆盖对应的编码connectionCollation

  • 因为没有java风格的字符集名称utfmb3可以与连接选项一起使用charaterEncoding,唯一的使用方式utf8mb3当您的连接字符集是使用utf8mb3排序(例如,utf8_general_ci)查看连接选项connectionCollation,将强制utf8mb3要使用的字符集,正如最后一个项目说明的那样。

警告

不发出查询组名称使用Connector/J,因为驱动程序不会检测到字符集已被查询更改,并将继续使用连接首次设置时配置的字符集。