关闭

MySQL乱码的问题解决

119人阅读 评论(0) 收藏 举报

1. 建立数据库用如下例子:

        create database mydb default charset=utf8;

2. 创建表如下;

        drop table if exists 't_table';

        create table t_table (

            userid bigint(20) not null comment '游戏玩家的Id'

            username varchar(64) not null comment '国际名字',

            primary key(userid)

)engine=innodb default charset=utf8 comment='测试表';

3. 程序链接的时候,注意首先 运行 set names utf8 或者设置链接属性如: mysql_options(pMysql, MYSQL_SET_CHARSET_NAME, 'utf8');

4.用链接客户端或者命令行,链接数据库查看测试结果

        碰到的一种情况是, 数据库和数据表,按照如上的方式,存储数据, 包含中文,日语,韩语等,在Navicat 连接查询现实正常,中,日,韩,均显示正常。

而用windows下的命令行,set names utf8后,中日韩显示均是乱码,而用set names gbk; 中日显示正常,韩文乱码,而用Mysql Query Browser  显示中日文字正常,

韩语不显示。 结果就是用3种工具查看,都是设定的set names utf8; 有个终端显示正常,有的显示不正常, 说明数据库里存的数据没有问题, 而是工具收到数据后,

显示的问题。

5. 判断此类问题,注意使用

      show variables like 'character_set_%'; 查看链接的字符集.

6.修改链接或者结果字符集:

      设置其他的 “variable_name”的 value 也为utf8: 

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_results = utf8;
SET character_set_database=utf8;
SET character_set_server=utf8;
       或者使用set names utf8;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1295次
    • 积分:70
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条