PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我有latin1编码的数据坐在UTF-8 mysql数据库中,如何解决此问题?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我在UTF-8 mysql数据库中有latin1编码的数据,该如何解决?不幸的是,没有原始数据.

我弄清楚了这一点,因为我可以正确显示数据的唯一方法是在PHP,HTML和MysqL中设置所有latin1.

完成此操作后,我可以在html和PHP中将所有内容更改回utf-8.

版本:
适用于使用readline 5.2的debian-linux-gnu(x86_64)的MysqL Ver 14.12 Distrib 5.0.51a

编辑:
我应该提到,当我告诉PHP和HTML使用latin1编码时,一切都正常,但是,这对我来说似乎很糟糕.

解决方法:

我相信是this article does exactly what you need to.

我在下面解释了您需要采取的步骤-将“ MyDb”替换为您的数据库名称.我建议您在开始之前进行备份!

USE information_schema;
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'char', 'binary'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%char%';
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', REPLACE(column_type, 'text', 'blob'), ';') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%text%';
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', column_type, ' CHARACTER SET utf8;') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%char%';
SELECT CONCAT('ALTER TABLE ', table_name, ' MODIFY ', column_name, ' ', column_type, ' CHARACTER SET utf8;') FROM columns WHERE table_schema = 'MyDb' and data_type LIKE '%text%';

将上面所有SELECT语句的输出复制到sql脚本中.向其中添加以下内容

ALTER DATABASE MyDb CHARACTER SET utf8;

切换到MyDb(USE MyDb;)并运行sql脚本.

大佬总结

以上是大佬教程为你收集整理的我有latin1编码的数据坐在UTF-8 mysql数据库中,如何解决此问题?全部内容,希望文章能够帮你解决我有latin1编码的数据坐在UTF-8 mysql数据库中,如何解决此问题?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: