最近关于中文显示乱码的贴子比较多,所以也做了个总结:

可以参考一下杨涛涛版主的《各种乱码问题汇总》

http://topic.csdn.net/u/20071124/08/3b7eae69-ed1d-4a77-8895-9930bf3601af.html

MySQL字符集的原理介绍。摘录于官方文档。http://dev.mysql.com/doc/refman/5.1/zh/charset.html

不同的编码格式会导致同一字符,在不同字符集下的编码会不同。同样同一编码在不同的字符集中代码的字符也不相同。当你的MySQL返回的字符串的编码格式(字符集)与你的客户工具程序(mysql, php, query browser, ...)当前使用的字符集不同时,就会造成乱码。 比如一个英国朋友告诉你Long, 当一位中国小学生看到后就会告诉你“龙”而不是“长”

关于字符集的详细介绍和例子,建议花一点时间看一下

http://dev.mysql.com/doc/refman/5.1/zh/charset.html  (第10章:字符集支持)。

这里仅摘要一下。

MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。

MySQL中关于连接环境的字符集设置有  Client端,connection, results 通过这些参数,MySQL就知道你的客户端工具用的是什么字符集,结果集应该是什么字符集。这样MySQL就会做必要的翻译,一旦这些参数有误,自然会导致字符串在转输过程中的转换错误。基本上99%的乱码由些造成。

乱码后需要检查的信息。(如果需要论坛上的朋友帮助,建议你提供以下信息 )

1. 数据库表中字段的字符集设置 。show create table TableName 或 show full columns from tableName

mysql> show create table t1;

+-------+------------------------------------

| Table | Create Table

+-------+------------------------------------

| t1    | CREATE TABLE `t1` (

`id` int(11) NOT NULL,

`c1` varchar(30) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gbk |

+-------+------------------------------------

1 row in set (0.00 sec)

mysql> show full columns from t1;

+-------+-------------+----------------+------+-----+-

| Field | Type        | Collation      | Null | Key |

+-------+-------------+----------------+------+-----+-

| id    | int(11)    | NULL          | NO  | PRI |

| c1    | varchar(30) | gbk_chinese_ci | YES  |    |

+-------+-------------+----------------+------+-----+-

2 rows in set (0.00 sec)

mysql>

2. 当前联接系统参数  show variables like 'char%'

mysql> show variables like 'char%';

+--------------------------+----------------

| Variable_name            | Value

+--------------------------+----------------

| character_set_client    | gbk

| character_set_connection | gbk

| character_set_database  | latin1

| character_set_filesystem | binary

| character_set_results    | gbk

| character_set_server    | latin1

| character_set_system    | utf8

| character_sets_dir      | C:\Program File

+--------------------------+----------------

8 rows in set (0.00 sec)

mysql>

1. 中文,请确保 表中该字段的字符集为中文兼容:

big5    | Big5 Traditional Chinese

gb2312  | GB2312 Simplified Chinese

gbk      | GBK Simplified Chinese

utf8    | UTF-8 Unicode

2. 确保,联接参数与这个字段字符集一致,你可以用 set name 'charsetname';

比如, set name 'gbk';

这条命令会同时修改 character_set_client,character_set_connection,character_set_results

(如果你的这架MySQL中都为中文,则你可以在my.ini或my.cnf中加上或修改这个参数, 参数文件修改后需重启MySQL服务)

[mysql]

default-character-set=gbk

3. PHP 乱码, 同样 mysql_query("set name 'gbk'"); 其它API也类似。

4. phpmyadmin里乱码

phpMyAdmin的config.inc.php中有没有设置$cfg['DefaultCharset']='utf-8';

5. Windows操作系统中命令行("DOS"窗口)下。

在你的DOS窗中的左上角标题栏片左键,属性,

在字体中,选择“宋体”,确认

mysql中 set names 'gbk';

6. ADO.NET, ADO中 ,可以连接字符串中加入CharSet=UTF8;类似指令以说明connection的字符集。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=UTF8;

7. SQL Manager for MySQL

用EMS建数据库,

Character Set设为utf-8

client charset设UTF-8

Font charset 设为GB2312_CHARSET

8. jdbcodbc桥接 http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/bridge.html

// Load the JDBC-ODBC bridge driver

Class.forName(sun.jdbc.odbc.JdbcOdbcDriver) ;

// setup the properties

java.util.Properties prop = new java.util.Properties();

prop.put( " charSet " , " Big5 " );

prop.put( " user " , username);

prop.put( " password " , password);

// Connect to the database

con = DriverManager.getConnection(url, prop);

9.  PHP 5.2 版本以上解决乱码问题的一个方法 (由 ljf_ljf [Mark Liang] 提供)

$conn = mysql_connect ( " 192.168.1.133 " , " root " , " 123456 " ) or

die ( " Could not connect: " . mysql_error ());

$program_char = " utf8 " ;

$conn . mysql_select_db ( " test " );

// $conn.mysql_query('SET @@character_set_results = "'.$program_char.'"');

mysql_set_charset( $program_char , $conn );

$charset = mysql_client_encoding ( $conn );

printf ( " current character set is %s
" , $charset );

$result = mysql_query ( " SELECT id, task_no,pack_path FROM tb_workplan where id = 1 " , $conn );

while ( $row = mysql_fetch_array ( $result , MYSQL_BOTH)) {

printf ( " ID: %s
task_no: %s 
pack_path :%s
" , $row [ " id " ] , $row [ 1 ] , $row [ " pack_path " ]);

}

$conn . mysql_free_result ( $result );

$conn . mysql_close ();

9.  存储过程参数乱码

create procedure t ( aa char(10) charset 'gbk')

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

mysql 显示 乱码_MySQL 中文显示乱码相关推荐

  1. mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 今天在做ssh的博客项目时发现mysql数据库中的中文显示为问号,网上查阅了很多资料,都不是很全,所以我总结一下,供大家参考和自己复习. 1.我的 ...

  2. mysql 支持中文的字符集_MySQL 中文显示乱码

    最近关于中文显示乱码的贴子比较多,所以也做了个总结: 不同的编码格式会导致同一字符,在不同字符集下的编码会不同.同样同一编码在不同的字符集中代码的字符也不相同.当你的MySQL返回的字符串的编 码格式 ...

  3. mysql导出excel出乱码_Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]...

    一.导出数据. 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内 ...

  4. srt乱码字幕中文显示解决办法

    相信有很多朋友都非常喜欢下载和收藏DVDRip影片,DVDRip一般都是外挂字幕的,外挂字幕的文件类型有很多,比如idx+sub.sub.ass.ssa.srt等等.其中idx+sub由一个idx文件 ...

  5. jsoncpp中文乱码,中文显示为\u问题处理;jsoncpp中文乱码解决;源码方式使用jsoncpp;UTF_8和ASSIC相互转换;

    一.jsoncpp中文写入为\u****问题处理:jsoncpp中文乱码解决: 当我们使用jsoncpp读取写入json文件时,会发现明明是中文字符串,但是赋值给Json::Value后却变成\u** ...

  6. debian mysql中文乱码_MySQL中文乱码的解决方法汇总

    当我们用PHP往MySQL数据库里插入中文时,一旦出现????乱码,很多同学就抓狂了,身为中国人,你却把中文汉字变成乱码,那我可不答应,于是乎我们就开始奔波于个大论坛发帖求助.... 对于MySQL中 ...

  7. mysql 中日韩 乱码_mysql字符集及乱码问题

    MySQL中涉及的几个字符集 character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:当 ...

  8. java中文乱码decode_JAVA中文字符乱码解决详解

    四.JSP读取request.getParameter里的中文参数后,在页面显示为乱码.在JAVA的WEB应用中,对request对象里的parameters的中文处理一直是常见也最难搞的一只大怪兽. ...

  9. 处理中文乱码和中文部分乱码

    文章转自:http://book.51cto.com/art/201112/306309.htm 在网络操作中,关于中文乱码很多初学者都感到非常困难,如何解决乱码?不要没有目的胡乱转码,笔者访问了几个 ...

  10. git linux 文件名乱码,git 中文文件名乱码

    git 中文文件名 乱码 mac git 默认中文文件名是 \xxx\xxx 等八进制形式 是因为 对0x80以上的字符进行quote 只需要 git config –global core.quot ...

最新文章

  1. 【游记】NOIP 2017
  2. 计算机学习 -快捷键
  3. JavaSE各阶段练习题----IO流
  4. pytorch 实现RBF网络
  5. jQuery的回调支持
  6. 广州博森科技有限公司外汇自动交易软件,免费下载试用
  7. 监督学习之分类学习:线性分类器
  8. 降噪和变声的几个常用软件简单整理
  9. Linux下cuda卸载
  10. 关于SqlServer练习题
  11. uni-app 杂记
  12. Kali Linux 渗透测试之被动信息收集(三)——Recon-NG框架
  13. 2022年秋招 Java后端程序员如何应对面试?
  14. 信捷原创程序,8个伺服轴。 PLC:信捷XDM-60T10 HMI:信捷TG765 总体I/O在200个点之内
  15. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day14】—— 数据库3
  16. php如何调用163邮箱发邮件,phpmailer使用163邮箱发送邮件例子
  17. 钱宝网可靠吗? 不信可以先试用后在说
  18. 后台开发面试问题整理
  19. 温度传感器室温监控仪
  20. java哪个爬虫框架好用_8个最高效的Python爬虫框架,你用过几个?

热门文章

  1. js获取浏览器的高度
  2. XC1004四轴SPI运动控制芯片,bc014四轴电子凸轮运动控制模块
  3. cad编辑节点快捷键是什么_CAD所有快捷键
  4. get 和 post请求的区别
  5. VsCode必备插件
  6. C语言——蔡勒(Zeller)公式的使用
  7. oracle 取awr报告,Oracle生成awr报告
  8. Android最全UI库合集
  9. Unity-UI-实现文本框内容自动滚动
  10. Amazon IoT Core 服务成本优化