日期:2014-05-16 浏览次数:20834 次
当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法(首发经典实用版)这样一篇能解决问题的文章是多么激动人心。
也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似“mysql 中文乱码”、“php mysql 中文乱码”、“mysql5.5中文乱码”、“mysql 乱码”、“mysql乱码问题”、“mysql jsp 乱码”、“mysql jdbc 乱码”、“mysql 查询乱码”、“mysql 导入数据乱码”等一系列问题,到底哪个是自己要找的能解决自己问题的呀?15%的程序员一看就懵了,剩下15%的程序员自己摸索或求教别人了。70%的程序员干脆不干了,干不动咱还是程序员,这种浪费生命的事情让别人干去把,呵呵。
其实mysql的乱码问题,说复杂也非常地负责,说简单简单的不行!区别就在于明白mysql乱码的本质原因,本文就从这个角度目的让煞笔程序员都掌握如何处理这个乱码问题。
(1)网站本身的编码。这不多说了,自己看看设置对了没,比如我设置的GBK就检查下编码是不是GBK。(一般通过文件右击属性来看,或建立工程的时候来统一设置)
(2)数据库连接字符串的编码。比如java中我连接mysql的相关语句如下:
public static String driverName = "com.mysql.jdbc.Driver";
public static String userName = "root";
public static String userPasswd = "123456";
public static String dbName = "myBook";
public static String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPasswd
+ "&useUnicode=true&characterEncoding=GBK";
。。。。。
Class.forName(driverName).newInstance();
connection = (Connection) DriverManager.getConnection(url);
如上面的代码中,加粗的就是我要说的部分,可以设置为你想要的字符串类型,这里设置的是GBK,这仅仅是java语言的示例,其他语言asp、php原理是一样的都有这样的数据库字符串链接关于字符集的配置,不会就查查手册或百度一下,这个很容易找到,如果百度还找不到,那360干他也对。
(3)mysql的字符集设置。
这个是重点了,一般都是在这里搞错而出现了mysql乱码。
mysql编码设置可以分为三种设置:数据库的编码、表的编码、和字段的编码。
a、数据库的编码:
在sqlyog工具中操作把,右击数据库点击更改数据库,如图
设置就可以了,煞笔不煞笔,简单不简单。
b、表的编码:
mysql很扯淡的是,表级别也设置了编码,说说咋设置把
。
右击要修改编码的表,点击更改表如上图,点了以后如下图:
点高级属性,表的字符编码设置很煞笔很简单,看到了把。记得修改完毕后,一定要点击“Alter”才行呀!这个按钮很容易被忽略,操蛋的sqlyog呀!
c、字段的编码:
mysql确实很扯淡,字段都有编码设置,还是上面的更改表,不过不点高级属性了。看图:
坑爹的默认不显示,对就是在右下角呢!看到了把,把对号取消把,取消后你看到了下图:
终于看到了字段后面跟的字符编码设置,他奶奶的熊,终于都找全了。设置把。记得修改完毕后,一定要点击“Alter”才行呀!这个按钮很容易被忽略,操蛋的sqlyog呀!
最后再出一个绝招把:
SHOW CREATE TABLE 表名
CREATE TABLE `wen` (
`id` int(8) DEFAULT NULL,
`bookid` int(8) DEFAULT NULL,
`title` varchar(200) COLLATE gbk_bin DEFAULT NULL,
`content` longtext COLLATE gbk_bin
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC
看到了把 哈哈!
对于mysql保存中文乱码的原因和解决办法(首发经典实用版)的总结:(1)程序员都不是煞笔,是软件做的煞笔,软件没有按照产品去做,易用性不好所以才导致大家找不到,以后的软件一定要把程序员当对用户体验要求极高得用户才能牛逼。(2)程序员有点煞笔,遇到问题头疼的要死,脑细胞都死了很多,经常遇到这样的事情解决不了还打击