php插入数据到mysql乱码

披羊皮的小狗 发布于 2011/10/18 22:22
阅读 4K+
收藏 0

大家好!最近在做一些网站,但是遇到一个麻烦的问题,头很痛,想请大家帮我解决,在此先谢谢大家!

在利用php中的mysql_query()插入一些数据到mysql,遇到以下问题:

可以插入数据到mysql数据库,但是用phpmyadmin查看内容却是乱码的,读取数据出来也不会乱码。但是这样对直接在phpmyadmin中查看数据照成影响,还有就是插入的数据和自己定义的字段长度有冲突,例如我的一个表中name字段设置为varchar(10),在我还没有插入10个字符时(大概5~6)个就插入不进去,但是插入2~3个字符确是可以的。我怀疑是字符集的问题,也就是说我插入5~6个字符,他乱码之后插入就已经超过10字符了。只有当你的字符为数字和英文字母时才不会出现这样的问题,只有汉字会乱码。

但是直接在phpmyadmin中输入mysql插入语句不会出现乱码,长度是多少就会是多少,不会出现上面的情况,问题是读取这些没有乱码的数据时却是乱码的。本来我以后是我的php代码错了,结果拿自己的代码输出sql语句在phpmyadmin中插入却是可以的。所以一切都在字符集的问题上。

现在想让大家看完之后给我一点建议,我就是想不要出现乱码,插入读取都不要,全完的正常,因为字符集浪费我太多时间和精力了,谢谢大家帮助我解决这个让我头疼的问题。

给我一些未来设计网站时的建议,让我避开这个字符集的问题,在字符集方面给我多多的注意细节,谢谢各位!不胜感激。。。

以下是问题补充:

@披羊皮的小狗:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 那句对?谢谢、、、 (2011/10/19 09:37)
加载中
0
G.
G.
只需要注意一点: 统一字符集, 不管是数据,还是代码,都用同一种字符集, 这样就不会在乱码上折腾,浪费时间.

大多数的开源软件都支持 utf8.
0
G.
G.
PHPMySQL默认是UTF8. 可能你用的是GBK之类的, 所以会乱码.
您可以在连接Mysql之后, 用 set names 来设置字符集.

建议采用 utf8.
0
披羊皮的小狗
披羊皮的小狗

我的编码也是UTF-8了。可以具体说下你是怎么克服乱码问题的吗?在书写代码以及操作上有哪些注意点嘛?谢谢

 

0
布老虎
布老虎
编码,仔细看看mysql的文档是怎么要求编码的。
0
披羊皮的小狗
披羊皮的小狗
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
那句对?谢谢、、、
0
星星王
星星王
两句都不对。在使用mysql链接的时候加个参数characterEncoding=UTF-8
0
Jeffery
Jeffery

引用来自“星星王”的答案

两句都不对。在使用mysql链接的时候加个参数characterEncoding=UTF-8
猩猩王说的对。
0
O
Oubushixb

确保mysql的编码为utf8的情况下,在执行查询前插入

mysql_query("set names utf8")

返回顶部
顶部