$sql="SET NAMES 'gb2312'";查询之前先发送这个SQL。
解决方案 »
- 关于php验证码
- 请教:如何判断字段名包含某些字符
- 高分请教有关站内搜索排序思路!
- 大家感觉js好不好学啊 我总是感到它的代码实在是太麻烦了,不知老鸟们怎么认识js ,晚辈想听听你们的意见
- 请各位大哥帮一个急忙,就是怎样把一个 时间格式 的 字符串 转换成 时间类型,急急急~~!
- phpmyadmin怎么设置才能让他不是直接进入页面,而是跳出一个用户名和密码输入框,正确了才能进入?
- 怎么解决这个问题(关于分页)?
- php安装问题(linux下)
- 关于手机短信接口的问题~~~
- wamp,php,post不能获取表单数据
- 问一个php分页问题
- 关于在本机安装phpmyadmin,远程连接数据库,本机是否一定要有apache服务?
我在本级测试的时候没有遇到任何编码方面的问题
因为我设置的默认字符集就是gb2312
所以数据过渡很平滑
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(database)转为utf8(connection),再转为gbk(result),你得到gbk的结果。因此最主要的是让client和results和你使用的客户端一致。比如你的网页是utf8编码,你就要设置这两个为utf8。
而在mysql命令行的时候,我用的是2000,需要设置为gbk
而我们用的set names XXX,实际上就是同时设置这3个变量(client、result、connection)为XXX。在这样的情况下,我们可以把一个数据库中的不同表或不同字段设为不同的字符集,只要上面3个设置正确,就可以在数据库中同时使用不同的字符集。注意要保证你的数据库中的字符已经使用了正确的字符集,比如如果一开始你设置错误,插入数据后,本身数据的编码就是不正确的,然后即使设置改回来,也不可能得到正确的显示了。这种情况容易在系统升级的时候发生。还有一个是编码互相之间的兼容性,如果一个字符在gbk中有,在utf8中没有,那么在gbk-》utf8-》gbk的过程中,它就变成了“?”
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">并且修改数据库的语言集为gb2312