Mysql中数据库中存放的格式GBK?UTF8? 小弟初学mysql,遇到这样一个问题。数据存放到mysql中后,是乱码,但是通过短信发送给别人的时候,别人能够正常看到。只是存放进mysql的格式不对。mysql中设置的格式是utf8的,那我如何才能让存放到mysql中的字符不是乱码,而且发送给别人以后也不是乱码呢?在什么地方设置格式?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没太明白,是你用程序处理,mysql里面的东西不乱,但是你用查询工具去查,就乱了?如果是这样,你需要调整查询工具的编码设置。 你是在命令行看到的乱码?在查询前执行一下set names gbk; 我是通过程序,将内容插入到mysql中的,插入数字的话,在mysql中是正常显示。但是插入文字,在mysql中就是乱码。将那些乱码发送到手机上又是中文的了。 在命令行中也是可以正常显示的。到mysql里面了就是乱码了。 比如:<?phpmysql_connect('localhost','user','password');mysql_select_db('my_db'); //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的//它的作用是设置本次数据库联接过程中,数据传输的默认字符集mysql_query("set names utf8;"); //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));?>也就是说:执行mysql_query("set names xxxx");其中xxxx是你网页的编码(charset=xxxx),如果网页中charset=utf8,则xxxx=utf8,如果网页中 charset=gb2312,则xxxx=gb2312 mysql_query(sock_inbox,"set names UTF8"); inbox_results = mysql_store_result(sock_inbox);我执行上面的语句以后,内容变成空的了。 把连接字符集改为gbk。或者,在查询前执行:set names 'gbk'; 在命令行中也是可以正常显示的。到mysql里面了就是乱码了。--------------------------------------------------------------------在命令行是正常的,你怎么判断是乱码? 命令行不是mysql里面?另我印象中短信接口都是要gbk的,或许你说的是phpmyadmin乱码,因为你的数据库/表/字段设置是utf8,但实际数据是gbk(windows命令行的编码就是gbk所以显示正常),所以你会看到乱码 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码看完这个贴子,或许就明白了。 你最好能在数据库与应用层统一下编码方式,不然自己会很乱,转来转去自己弄晕了,WEB页面一般会用UTF8编码,你可以建表的时候在后面加上"DEFAULT CHARSET=utf8",应该可以解决希望对你有所帮助 MYSQL ,我要关闭两次数据库吗 mysqldump做备份失败了! 我的mysql 为什么建不了新用户 关于分组后的排序问题! 有请各位高人 求一个mysql trigger, 急! is not allowed to connect to this MySQL server 问题?? 用select count()能不能同时得出几个count值 哪里有MySQL的源代码下载啊? mysql认证 SQL入门小白咨询《SQL必知必会》(第四版)中的“Products”表怎么获取 distinct 继续。。。55555 股票数据库设计,望高手指点
<?php
mysql_connect('localhost','user','password');
mysql_select_db('my_db'); //请注意,这步很关键,如果没有这步,所有的数据读写都会不正确的
//它的作用是设置本次数据库联接过程中,数据传输的默认字符集
mysql_query("set names utf8;"); //必须将gb2312(本地编码)转换成utf-8,也可以使用iconv()函数
mysql_query(mb_convet_encoding("insert into my_table values('测试');", "utf-8", "gb2312"));
?>
也就是说:执行mysql_query("set names xxxx");其中xxxx是你网页的编码(charset=xxxx),如果网页中charset=utf8,则xxxx=utf8,如果网页中 charset=gb2312,则xxxx=gb2312
inbox_results = mysql_store_result(sock_inbox);我执行上面的语句以后,内容变成空的了。
set names 'gbk';
--------------------------------------------------------------------
在命令行是正常的,你怎么判断是乱码?
MySQL 中文显示乱码看完这个贴子,或许就明白了。
WEB页面一般会用UTF8编码,你可以建表的时候在后面加上"DEFAULT CHARSET=utf8",应该可以解决
希望对你有所帮助