LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1748|回复: 3

求助日文乱码的问题,有关mysql编码的问题。

[复制链接]
发表于 2006-6-22 10:56:51 | 显示全部楼层 |阅读模式
现在在做一个日文的网站,主要的工作是从前台获取用户输入的日文,存到后台的mysql数据库中,然后再在浏览的页面显示出来。本人对编码不是很熟,所以保险起见用的是UTF-8编码,现在遇到的问题是同样的php程序在自己的机器上使用完成上面的功能没有问题,但传到空间上就出了问题,总有乱码。

我机器上的软件是这样的windowsxp+apache2.0.58+PHP5.1.4+MySQL5.0.22-community-nt。apache默认字符为UTF-8,mysql的字符集为UTF-8,连接校对为utf8_general_ci

买的空间的软件linux+Apache2.0.52+php4.4.2+mysql4.1.10a。mysql表的连接校对为utf8_general_ci。

php程序读入数据就是用的$_POST变量,再insert into到table中。

有一点不同是在空间上用phpmyadmin看到在数据库页面有如下的对数据库的总计,
2 个表   总计  9  --   latin1_swedish_ci     16.5 KB    0 字节
这里用的是latin1_swedish_ci整理,而每个表是utf8_general_ci

而我自己的机器上看到的是
2 个表  总计 42 InnoDB utf8_unicode_ci 79.0 KB 336 字节
总计和表的整理都是utf8_unicode_ci,不知道是不是这个的问题?

现在就搞不清楚为什么两个地方的程序执行的结果会有不同,请高手指点!
发表于 2006-6-22 11:08:41 | 显示全部楼层
MySQL的connection也是需要设置编码的,不懂PHP,你可以检查一下这方面的设置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-22 15:41:27 | 显示全部楼层
还是用set names 'utf8'解决了问题。虽然还不知其所以然。
回复 支持 反对

使用道具 举报

发表于 2006-7-7 09:50:39 | 显示全部楼层
在连接数据库之后,用mysql_query("set names 'utf8'");语句
将php脚本与mysql通讯的数据明示为utf8,因为默认情况下数据还是以latin1传的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表