php中使用mysql4升级到mysql5出现的中文乱码问题 恩,我自己用phpmyadmin看的时候,上面的字段就是乱码了。郁闷。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://my.donews.com/baijiecao/2006/12/15/ubeieejumaekzyjmeqqiognvwvfzwqqrruzw/看看,和你的问题差不多....已解决! 加入mysql_query('set names gb2312'); 应该是字符集设置不对吧 统一设置字符集 SET NAMES utf8 楼上,不行mysql_query('set names gb2312');早就加过了。而且记录不是乱码,只有字段是 恩,各位老大,网上搜到过好多解决乱的文章,大部分都是加mysql_query('set names gb2312');我也的确用过了,而且记录(数据)也显示正常了。我的问题是,这个表里有字段是中文,显示是乱码.......大家都帮忙,多谢了. 中文是字段名,要手动修改如果中文是字段值,则可能要转码mysql4 的码实际是拉丁,不是真正的GB2312改的办法:如查是用PHPmyadmin,将mysql4.0的可导入文章到txt文档中,打开,手动复制,进mysql5.0的PHPmyadmin中的SQL中,插入表和记录(注意,不是直接导入)会自动转码————————————————————其他的办法可直接读mysql的数据,用mysql_query('set names gb2312')处理后;存放mysql5 恩,没办法,这个表就是以中文做的字段。过去在mysql 4的时候没问题现在的问题就是升级到mysql 5 以后就变成乱码了。呵,不是说改就改的,里面好几万条记录呢..... 第二个的办法就是倒库,但我没试过,主是从mysql4中读出来一条记录集或存数组,再联mysql5,联后mysql_query('set names gb2312'),然后循环数组或记录插入mysql5 恩,楼上的老大,有没有写好的例子??还有,必须这样吗?有的时候这样倒数据,感觉会出点问题。还有没有好办法,直接在php里写个什么整过来呢? 好象没什么好办法,mysql4。0和5。0的是不同版,变化很大如果是同一版就好办了 你这样: 先在mysql4导出所有的表结构(只要结构), 然后在mysql5新建一个库 把表导进去 (多试试看怎么才能正确建立表) 最后在mysql5来N个 insert into xxxxxx.ttttt select * from yyyyyy.ttttt 把数据填进去 楼上的老大,几十个表,这样做工作量有点大~~恩,有没有什么已经写好的,mysql4 导成 mysql5 的倒库方法? 使用mysqldump导出数据文件,然后升级数据库,然后再次导入数据库,5和4的数据文件格式有一些不同 老的数据库导出为SQL文件,然后打开sql文件添加set names gb2312再倒入到新库,这个不行的话,转成UTF8看看中文能不能正常显示。字段名用中文是不太好的习惯 字段名?还是字段值?如果是字段名:印象中 mysql 5 的内部编码跟 4 不同,好像是 unicode 的。也就是说,你创建这个字段的时候,应该使用 unicode 编码的 sql 语句来创建中文字段名的表。印象不准确,不过可以试试~~ 16楼的老大,mysqldump是个啥东西? 如果你用中文做字段名的话,可以这样:1、建一新表,结构与原表相同。2、执行sql:insert into 新表 select * from 原表3、删去原表: DROP TABLE 原表4、改新表名为原表名:RENAME TABLE 新表 TO 原表 你先在原服务器上备分一个改,改完后再想办法存mysql5乱码问题:一是用我的方法;二要转码,可用PHP转码函数!没有什么好办法!你可查查mysql4 导mysql5有什么好办法?————基本上没有! 要看你开始保存的编码方式 然后你导入的时候要设置一样的编码方式啊set names 编码方式 php中开启pdo,多次尝试均失败,请教原因 mysql的内存表性能怎么样,在线等 参加培训vs考研 正规表达式问题 无法加载mysql提示 想问一个关于apache+php配置的问题 PHP执行顺序讨论! 请教:关于在线编辑器的原理 Apache如何让它在浏览时只显示页面而不显示文件目录? 为什么使用session生成的session文件是0字节文件咯,我用的是linux+Apache+php!!! PHP类问题!在线等 请问 表连接和子查询性能
统一设置字符集 SET NAMES utf8
如果中文是字段值,则可能要转码
mysql4 的码实际是拉丁,不是真正的GB2312改的办法:如查是用PHPmyadmin,将mysql4.0的可导入文章到txt文档中,打开,手动复制,进mysql5.0的PHPmyadmin中的SQL中,插入表和记录(注意,不是直接导入)会自动转码————————————————————其他的办法可直接读mysql的数据,用mysql_query('set names gb2312')处理后;存放mysql5
如果是同一版就好办了
先在mysql4导出所有的表结构(只要结构),
然后在mysql5新建一个库 把表导进去 (多试试看怎么才能正确建立表)
最后在mysql5来N个 insert into xxxxxx.ttttt select * from yyyyyy.ttttt 把数据填进去
添加set names gb2312
再倒入到新库,这个不行的话,转成UTF8看看中文能不能正常显示。字段名用中文是不太好的习惯
印象中 mysql 5 的内部编码跟 4 不同,好像是 unicode 的。
也就是说,你创建这个字段的时候,应该使用 unicode 编码的 sql 语句来创建中文字段名的表。印象不准确,不过可以试试~~
1、建一新表,结构与原表相同。
2、执行sql:insert into 新表 select * from 原表
3、删去原表: DROP TABLE 原表
4、改新表名为原表名:RENAME TABLE 新表 TO 原表
乱码问题:一是用我的方法;二要转码,可用PHP转码函数!
没有什么好办法!你可查查mysql4 导mysql5有什么好办法?————基本上没有!
set names 编码方式