mysql编码问题以及中文乱码解决
来源:互联网 发布:cordic算法看哪本书 编辑:程序博客网 时间:2024/05/16 07:07
1)、检查当前数据库编码。
使用语句:
2)、如果不是以上情况,需要将mysql编码设置为utf-8。具体步骤如下:
如果安装mysql时安装了“MySql Sever Instance Configuration Wizard”,则只需要启动该程序进行相应设置即可。如下面截图中所描述,需要将默认编码设置为utf8。
如果没有该程序,需要手动修改mysql编码。
1>、 编辑MySql的配置文件
MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf
--在 [mysqld] 标签下加上以下内容:
default-character-set = utf8
character_set_server = utf8
注意:如果此标签下已经存在“default-character-set=GBK”类似的内容,只需修改即可。
--在 [mysql] 标签下加上一行 default-character-set = utf8
--在 [mysql.server]标签下加上一行 default-character-set = utf8
--在 [mysqld_safe]标签下加上一行 default-character-set = utf8
--在 [client]标签下加上一行 default-character-set = utf8
character_set_client为客户端编码方式;
character_set_connection为建立连接使用的编码;
character_set_database数据库的编码;
character_set_results结果集的编码;
character_set_server数据库服务器的编码;
2>、 重新启动MySql服务
Windows可在服务管理器中操作,也可使用命令行:
net stop mysql 回车
net start mysql 回车
服务名可能不一定为mysql,请按自己的设置
Linux下面可是用 service mysql restart
如果出现启动失败,请检查配置文件有没有设置错误
3>、 查看设置结果
登录MySql命令行客户端:打开命令行mysql –uroot –p 回车,输入密码
进入mysql后 执行 :show variables like "% character %";
显示结果应该类似如下:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
如果仍有编码不是utf8的,请检查配置文件,也可使用mysql命令设置:
另外:建立数据库时可以使用以下命令:
修改数据库编码的命令为:alter database app_relation character set utf8;
5、如果你采用的是外部接入的方式,可以在连接中确定请求的编码格式如:jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出现任何空格,否则出错)
6、JSP页面传进来的参数中文就是乱码,则是前台的问题,这个时候写一个过滤器就好了,可以写如下的一个过滤器
public class EncodingFilter implements Filter {
String encoding;
private static final String DEFAULT_CHARACTER_ENCODING = "UTF-8";
public EncodingFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
// pass the request along the filter chain
try {
if ((encoding!=null)&&(encoding.length()>0)) {
request.setCharacterEncoding(encoding);
//验证是否进入这个if语句
System.out.println("in filter and encoding :"+encoding);
}else {
request.setCharacterEncoding(DEFAULT_CHARACTER_ENCODING);
}
} catch (UnsupportedEncodingException e) {
request.setCharacterEncoding(DEFAULT_CHARACTER_ENCODING);
e.printStackTrace();
}
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
//获取配置文件中的encoding
encoding = fConfig.getInitParameter("encoding");
//确认web容器初始化的时候这个filter也已经初始化了
System.out.println(encoding);
}
}
注意这有一个关键的地方,你使用过滤器的话,表单的提交方式必须是post,如果还是get方式,则还是乱码的
或者有个笨办法
7. 在b.jsp中把String name=request.getParameter("name");修改为
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
2. 这时再在页面上显示,则就是中文了。
这样也可以的
2、第二种造成的方法就是数据库里面的字符集的问题,这个的问题不是比较专业的从事数据库的朋友,一般不太理解其中的原理,目前我只能参考别人的办法
转载来自:http://www.jb51.net/article/90304.htm
http://blog.csdn.net/red4711/article/details/6007248
http://blog.csdn.net/yipiankongbai/article/details/16937815
http://blog.csdn.net/frinder/article/details/7041723
- mysql编码问题以及中文乱码解决
- 字符编码知识以及mysql中文乱码的解决
- mysql字符编码并解决中文乱码问题
- 【MySQL】统一控制台-pma-PHP编码!解决中文乱码问题
- mysql字符编码的设置--解决中文乱码问题
- xampp下mysql设置密码以及解决中文乱码问题
- 解决Mysql中文乱码以及Incorrect string value的问题
- 解决 mysql 中文乱码问题
- 解决MySQL中文乱码问题
- mysql 解决中文乱码问题
- 解决MySql中文乱码问题
- 解决mysql中文乱码问题
- 解决MySql中文乱码问题
- 解决Mysql中文乱码问题
- mysql 解决中文乱码问题
- 解决MySql中文乱码问题
- mysql解决中文乱码问题
- 解决Mysql中文乱码问题
- 为镜像添加SSH服务---Dockerfile创建
- 热备份、温备份、冷备份(Hot/Warm/Cold Backup)
- 细说 Java 的深拷贝和浅拷贝
- 网页实现扫码录入,小问题记录
- Toolbar样式定制详解
- mysql编码问题以及中文乱码解决
- git 如何获取某一个人特定的tag的源码啊
- ListView使用技巧
- (HDU6105)Gameia(博弈+树的切割)
- HDU1754-线段树(点更新区间查询)-I Hate It
- 小Z的袜子(hose) HYSBZ
- 从微信AI首席顾问到金融文档智能,一位中科院计算机科学家AI产品化实践
- java的世界里,younggc与fullgc分别是在什么时候发生
- hdu6119 小小粉丝度度熊【尺取法(滑动窗口)】