总结--解决 mysql 中文乱码
首先分析一下导致mysql 中文乱码的原因:
1、建表时使用了latin 编码
2、连接数据库的编码没有指定
3、写入时就已经乱码(这种情况需要自己检查源数据了)
解决方法总结:
create database testdb default charset utf8
2.修改库的编码:
ALTER DATABASE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
3.修改表的编码:
ALTER TABLE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
4.修改字段的编码:
ALTER TABLE `tablename` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
是将MYSQL数据库tablename表中 dd的字段编码改能够该为utf8
诊断过程:
1、SHOW CREATE TABLE testtable; 使用建表语句查看当前表的编码如果是拉丁latin编码,则可以使用
ALTER DATABASE `testtable` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
进行更改表的编码
2、再次使用show create table 命令查看,表编码
如果发现当前列中编码也不正确,那么使用
ALTER TABLE `tablename` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
进行更扆dd这一列的编码
3、如果还是正确,那么查看下你的代码里的连接方式是否正确
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
我这里是java方面的连接,这里指定了连接的编码utf-8
到这里应该就可以了
4、修改系统默认编码
mysql> SHOW VARIABLES LIKE 'character%'; mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ; mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
参考文章:
1、http://www.2cto.com/database/201307/227538.html
2、http://zhidao.baidu.com/link?url=WtACC0jMIsOAk6eX6kJk8qjQhga28VgsYpNPY4Oc9sWH5fgU2OQm1An-IGiV4yZ-PE80VJ5ZB-YxrAVW3Jo8ua
总结--解决 mysql 中文乱码的更多相关文章
- PHP彻底解决mysql中文乱码
彻底解决mysql中文乱码 mysql是我们项目中非经常常使用的数据型数据库. 可是由于我们须要在数据库保存中文字符,所以经常遇到数据库乱码情况.以下就来介绍一下怎样彻底解决数据库中文乱码情况. 数据 ...
- 解决mysql中文乱码问题?
mysql是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 cre ...
- 彻底解决mysql中文乱码
mysql是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 cre ...
- 彻底解决mysql中文乱码的办法 ???
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如p ...
- 彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如server字符编码还停留在latin12.table的语系设定问题(包含character与collation)3.客 ...
- 解决mysql中文乱码(总)
转自:http://hi.baidu.com/cnvienna/blog/item/2e99efdfd94fc61862279801.html MySQL会出现中文乱码的原因不外乎下列几点: .ser ...
- 解决Mysql中文乱码问题的方案
MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如ph ...
- win10 系统解决mysql中文乱码问题
问题: 向mysql 数据库插入数据是,出现中文乱码(中文均显示为‘??’) 原因: mysql 默认的字符集是latin1,所以我么需要改为ut8编码才可以 解决: 1.以管理员权限运行cmd窗口 ...
- 解决MySQL中文乱码的问题
遇到中文乱码问题,首先用status命令检查数据库的配置,如下: 上图会显示数据库配置的各项信息. 还可以用 show create database XXX,来显示创建数据库的时候的编码设置. 一般 ...
随机推荐
- java.lang.IllegalArgumentException: template not initialized; call afterPropertiesSet() before using
在使用spring-data-redis时使用junit测试报错: java.lang.IllegalArgumentException: template not initialized; call ...
- The source attachment does not contain the source for the file ActionSupport.class 错误
报错 Syntax error, insert ";" to complete FieldDeclaration 报错 The source attachment does ...
- POI 设置
FileOutputStream fos = new FileOutputStream("D:\\15.xls"); HSSFWorkbook wb = new HSSFWorkb ...
- js的原型模式
以下内容来自<JavaScript高级程序设计>第三版 我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所 ...
- for+next()实现数组的遍历及while list each 的使用
//要求使用for循环语句来完成该数组的遍历//输出每一项的键名和对应值: $a = array( 'a' => 34, 5 => 51, ...
- zt:Linux查看程序端口占用情况
http://www.cnblogs.com/benio/archive/2010/09/15/1826728.html yxr注: 由于安装eda工具libero,license要配端口,为确认端口 ...
- cakephp 打印出SQL语句
最近一直在使用cakephp这个框架学习,最近发现了一些问题,就是怎样将SQL语句打印出来进行调试,方法如下: $db=ConnectionManager::getDataSource('defaul ...
- java多线程的几种实现方式记录
传统的实现线程的方式为三种,分别为继承Thread类,重写run()方法:实现Runable接口,重写run()方法:实现callable接口,重写call()方法:下面来记录一下最基本的三种编码实现 ...
- matlab 按照某列以行为单位进行排序
a=[2 1 3 21 44 3] 然后按照第一列进行排序 sortrows(a,1) ans = 1 4 2 1 3 2 4 3 如要逆序,可以逆序读矩阵即可
- const char **
foo (const char **p){ } main (int argh,char **argv) { foo(argv); } warning : argument is i ...