mysql 连接url中useUnicode=true&characterEncoding=UTF-8 的作用

来源:互联网 发布:mac 删除桌面安装程序 编辑:程序博客网 时间:2024/06/16 04:48

我们在连接mysql数据库的时候一般都会在url后面添加useUnicode=true&characterEncoding=UTF-8 ,但是问什么要添加呢?

 

添加的作用是:指定字符的编码、解码格式。

             例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,那么作用有如下两个方面:

1. 存数据时:

     数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

2.取数据时:

     在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新UTF-8格式编码数据,最后再将数据返回给客户端。

注意:在xml配置文件中配置数据库utl时,要使用&的转义字符也就是&

      例如:<property name="url" value="jdbc:mysql://localhost:3306/email?useUnicode=true&amp;characterEncoding=UTF-8" />

HTML中常用的特殊字符:

最常用的字符实体(Character Entities)

显示结果说明Entity NameEntity Number 显示一个空格&nbsp;&#160;<小于&lt;&#60;>大于&gt;&#62;&&符号&amp;&#38;"双引号&quot;&#34;

其他常用的字符实体(Character Entities)

显示结果说明Entity NameEntity Number©版权&copy;&#169;®注册商标&reg;&#174;×乘号&times;&#215;÷除号&divide;&#247;
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8。
1、需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为:
 >show variables like 'character%';
+--------------------------+----------------------------+
| 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 | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
另一个查看数据库编码的命令:
>show variables like ‘collation%’;

mysql配置文件中修改:mysql没有配置文件也可以启动,你可以把my-default.ini改名为my.ini,然后放到mysql安装根目录,在[mysqld]下加上
character-set-server=utf8


0 0
原创粉丝点击