为什么数据提交进mysql里以后都成了问号“???”了?

moyahuang 2005-05-22 11:59:27
如题!
好奇怪!
...全文
195 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ronin_china 2005-05-23
  • 打赏
  • 举报
回复
在mysql_query前
mysql_query("set names 'gb2312'");
二十斤 2005-05-23
  • 打赏
  • 举报
回复
phpmyadmin支持中文,
我也遇到过类似情况。
不知道为什么
ray929 2005-05-23
  • 打赏
  • 举报
回复
支持中文的很多很多的
netimmortal 2005-05-23
  • 打赏
  • 举报
回复
你要是用phpadmin查看的话, 中文的全部都是???号,因为PHPadmin不支持中文的.如果谁知道有支持中文的请告知.谢谢
Fibona 2005-05-23
  • 打赏
  • 举报
回复
在建库的时候设置charset=gb2312

phpAdmin肯定是支持中文的
markshannon 2005-05-23
  • 打赏
  • 举报
回复
1, 在建库的时候,注意设置charset=gb2312;
2, phpmyadmin是支持中文的,界面里直接选语言集就是了
Fibona 2005-05-23
  • 打赏
  • 举报
回复
语言集的问题
helloyou0 2005-05-23
  • 打赏
  • 举报
回复
再贴一次

最近问这个的很多,我写一下我的理解。

和字符相关的变量中这几个和sql很有关系:
character_set_client
character_set_connection
character_set_results
此外就是数据库中对相应字段设置的charact set,如果没有对字段设置,缺省是table的charact set,table也没有指定则缺省使用database的。

上面3个变量的作用是这样的,client表示客户端发送过来的字符集,results表示发送到客户端的字符集(这两个分开是因为发送过来和发送过去的不一定是同一个客户端),connection则在客户端和数据库起一个连接作用。
具体是这样:比如我在mysql命令行设置client为gbk,connection为utf8,results为gbk,数据库为big5,
当我发送一个insert语句的时候,这个语句作为gbk代码,先转为utf8代码(connection),再转为big5(database)插入数据库。
而运行一个select语句的时候,从数据库得到的结果则相反的过程,由big5转为utf8,再转为gbk,你得到gbk的结果。

因此最主要的是让client和results和你使用的客户端一致。比如你的网页是utf8编码,你就要设置这两个为utf8。
而在mysql命令行的时候,我用的是2000,需要设置为gbk
而我们用的set names XXX,实际上就是同时设置这3个变量为XXX。

在这样的情况下,我们可以把一个数据库中的不同表或不同字段设为不同的字符集,只要上面3个设置正确,就可以在数据库中同时使用不同的字符集。

注意要保证你的数据库中的字符已经使用了正确的字符集,比如如果一开始你设置错误,插入数据后,本身数据的编码就是不正确的,然后即使设置改回来,也不可能得到正确的显示了。

还有一个是编码互相之间的兼容性,如果一个字符在gbk中有,在utf8中没有,那么在gbk-》utf8-》gbk的过程中,它就变成了“?”

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧