PHP+MySQL乱码的解决

在DOS中进行MySQL的访问可能乱码的情况有三种,

    首先,要做的是检查MySQL的配置,安装的时候选择utf-8的语言环境会省去很多的麻烦

1. 检查MySQL的服务端、客户端的语言设置是否为“utf8”,不是的话手动将my.int更改过来;

2. 在PHP进行第一次mysql_query之前设置使用连接的字符集为"SET NAMES 'utf8'",即mysql_query("SET NAMES 'utf8'");很多人做到这里就可以看到汉字了;

3. 设置database的字符集——例如,CREATE DATABASE dmsdb DEFAULT CHARACTER SET utf8 COLLATE utf8_bin,这样使用show full column from tablename查到的VARCHAR的COLLATE才是utf8_bin类型的;

    其次,应该发现再次查询的结果字符串有了变化,这时如果有许多的日文字符出现,再看PHP.ini的设置:

php中要对php.ini文件中line 637: extension=php_mbstring.dll 前的分号除掉,并且必需修改mb_string的相关编码配置,修改后的内容为:
line 1164: mbstring.language = utf-8
line 1169: mbstring.internal_encoding = utf-8
line 1172: mbstring.http_input = auto
line 1176: mbstring.http_output = utf-8
line 1183: mbstring.encoding_translation = On
line 1187: mbstring.detect_order = auto
line 1191: mbstring.substitute_character = utf-8;
line 1201: mbstring.func_overload = 1
所有行号均对应的是php5.1.6 版本的php.ini-recommand

    当此时设置完成后我在dos里进行查询操作还是会出现乱码的形式,这时要考虑dos的设置问题了,

在Shell>mysql --default-character-set=gbk -u root -p,应该再进行查询就会显示出完美的汉字了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值