mysql字符集问题汇总

1.设置mysql字符集:
在my.ini中添加以下设置,没有my.ini可以将my_default.ini改成他。
character-set-server=utf8
[client]
loose-default-character-set = utf8

2.jdbc连接字符串指定
在jsp中,mysql使用中文查询条件无输出的解决办法,连接字符串后面指定utf_8字符集

3.建立数据库脚本文件最好也加上字符集设置
CREATE TABLE `t_export` (
`id` int(11) NOT NULL auto_increment,
`goodsId` int(20) default NULL,
`expoPrice` varchar(20) default NULL,
`expoDate` datetime default NULL,
`expoNum` varchar(20) default NULL,
`expoDesc` varchar(1000) default NULL,
PRIMARY KEY (`id`),
KEY `FK_t_export` (`goodsId`),
CONSTRAINT `FK_t_export` FOREIGN KEY (`goodsId`) REFERENCES `t_goods` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

4.jsp页面中指定utf-8
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>

5.客户端访问的问题  
但这三个参数是不能写在配置文件my.cnf里的。只能通过set命令来动态修改。我们需要的是在配置文件里写好一劳
永逸的办法。那么这时候,是否有在服务端解决问题的办法呢,可行的思路是在init_connect里设置。这个命令在每
个普通用户连接上来的时候都会触发执行,可以在[mysqld]部分增加以下一行设置连接字符集:
在[mysqld]下添加:
  init_connect = 'SET NAMES utf8'

6首先,MySQL有默认的字符集,这个是安装的时候确定的,在编译MySQL的时候可以通过DEFAULT_CHARSET=
utf8和DEFAULT_COLLATION=utf8_general_ci这两个参数(MySQL5.5版本,5.1版本用--with-charset=
utf8 --with-collation=utf8_general_ci)来指定默认的字符集为utf8,这也是最一劳永逸的办法,这样指定后,
客户端连接到数据库的编码方式也默认是utf8了,应用程序不需要任何处理。

posted @ 2017-11-08 15:46  于天云  阅读(240)  评论(0编辑  收藏  举报