mysql保存中文乱码的原因和解决办法(首发经典实用版)

标签: mysql 中文乱码 原因 | 发表时间:2012-09-18 21:19 | 作者:androidjiaocheng
出处:http://blog.csdn.net

    当你遇到这个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呀!

    

    对于mysql保存中文乱码的原因和解决办法(首发经典实用版)的总结:(1)程序员都不是煞笔,是软件做的煞笔,软件没有按照产品去做,易用性不好所以才导致大家找不到,以后的软件一定要把程序员当对用户体验要求极高得用户才能牛逼。(2)程序员有点煞笔,遇到问题头疼的要死,脑细胞都死了很多,经常遇到这样的事情解决不了还打击自信心,解决的了还是买不起房子,你说我们图了什么呢?当初的梦想是什么呢?沉思中。
  

 

 

作者:androidjiaocheng 发表于2012-9-18 21:19:41 原文链接
阅读:0 评论:0 查看评论

相关 [mysql 中文乱码 原因] 推荐:

mysql保存中文乱码的原因和解决办法(首发经典实用版)

- - CSDN博客推荐文章
    当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法(首发经典实用版)这样一篇能解决问题的文章是多么激动人心.     也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似“mysql 中文乱码”、“php mysql 中文乱码”、“mysql5.5中文乱码”、“mysql 乱码”、“mysql乱码问题”、“mysql jsp 乱码”、“mysql jdbc 乱码”、“mysql 查询乱码”、“mysql 导入数据乱码”等一系列问题,到底哪个是自己要找的能解决自己问题的呀.

(原创)Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

- - 服务器运维与网站架构|Linux运维|X研究
PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决. 解决了,有个细节问题网上没人说,我就总结一下. 一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:. character_set_database和character_set_server的默认字符集还是latin1.

意想不到的 MySQL 复制延迟原因

- - IT瘾-dev
线上有个MySQL实例,存在严重的复制延迟问题,原因出乎意料. 线上有个MySQL 5.7版本的实例,从服务器延迟了3万多秒,而且延迟看起来好像还在加剧. 我们看到, binlog文件落后了64个,相当的夸张. MySQL 5.7不是已经实现并行复制了吗,怎么还会延迟这么厉害. 看到 mysqld进程其实负载还好,不算太高,也不存在严重的SWAP等问题.

RestTemplate 中文乱码解决方法

- - 企业架构 - ITeye博客
Spring4.2.2.RELEASE   RestTemplate 中文乱码解决方法.        RestTempalate 字符串类型默认StringHttpMessageConverter做转码,而StringHttpMessageConverter的默认编码集是ISO8859-1,本工程编码是UTF-8 故发送到服务器端会存在中文乱码.

webview中文乱码及cookie的设置

- - IT瘾-geek
这里主要记录关于 WebView加载含中文的 url和 cookie中设置中文显示乱码的解决方法. 目前,在android 开发中,为了方便程序进行扩展,很多 APP中都采用了 WebView来加载 H5 页面,这样通过后台更换一个H5地址,程序中就有相应的变化,不用重新打包发布. 我参与的项目中,使用 WebView的场景主要有下面几种:商城类APP中的商品详情、签到、帮助中心、积分抽奖、邀请好友,banner详情等.

MAC OS上解决终端显示中文乱码的问题

- - CSDN博客编程语言推荐文章
在终端上运行命令javac,查看结果中文会显示乱码,如下:. 其实大家都知道,中文乱码的主要原因就是编码方式的不支持,那我们怎么样设置编码方式呢. 这里推荐您使用一个特别好的终端iTerm,默认编码方式是utf-8,需要设置为Chinese (GB 18030). 之后重新打开iTerm,输入javac,查看结果.

Java进程在Unix平台上中文乱码问题

- - BlogJava_首页
用Log4j记录的日志中,中文也是. ,这个问题很让人心烦,当然以我的运气,这种问题是一定会遇到的,现在记录一下解决方法.     因为每一个应用都会启动一个Java进程,启动方法就是 java $OPTS com.xxx.xxx.xxx.     其中变量$OPTS就是我们要设置的JVM的启动参数.

locale错误导致Java中文乱码错误的总结

- - Java - 编程语言 - ITeye博客
线上执行MapReduce任务计算时,经过排查发现了某些服务器计算的数据出现中文乱码问题,但是服务器的配置是完全一致的. 由于我们使用的key可能包含中文,中文乱码问题体现在每次合并map记录的时候计算数据的随机性,每次执行的结果都不一样(由于Map任务执分配的随机性). (注:此文章大部分都参考了同事查找到的问题解决方法.

mysql在第一次查询的时候很慢,第二次查询就比较快的原因?

- - 数据库 - ITeye博客
1、默认 query_cache 是打开的. 你使用 show global variables like '%query_cache%';. 确认一下有没有打开,如果打开了. 第一次查询读数据文件,第二次就会走query_cache,所以就会很快. 当然 ,如果数据更新了,要重新再缓存. 2、第二种情况 ,查询表引擎:show variables like '%storage_engine%', 表引擎使用innodb.第一次查询也会走数据文件,第二次直接走buffer_pool,也比直接查询数据文件要快.

MYSQL logstash 同步数据到es的几种方案对比以及每种方案数据丢失原因分析。

- -
MYSQL logstash 同步增量数据到ES. 最近一段时间,在使用mysql通过logstash-jdbc同步数据到es,但是总是会有一定程度数据丢失. logstash-jdbc无非是通过sql遍历数据表的所有数据,然后同步到es. 对于表里面的所有字段都需要查出来然后同步到es中去. 数据同步脚本分为全量同步与增量同步.