更改实时 MySQL 数据库上的字符集
我目前在 MySQL 5.1.x 数据库中有一堆使用 latin1 字符集的表。问题是,我们最近有一群用户尝试使用 UTF-8 编码输入文本,这似乎破坏了一切。
盲目更新表的字符集是否安全?对于这种情况,有哪些最佳实践(除了显然备份所有内容之外)?
I currently have a bunch of tables using the latin1 charset in a MySQL 5.1.x DB. Problem is, we recently had a bunch of users trying to input text using UTF-8 encoding, and that seemed to break things.
Is it safe to blindly update the table's character set? What are some best practices (besides obviously backing everything up) for a situation like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议看看转换字符集帖子在 mysqlperformanceblog 上。
I suggest to take a look at Converting Character Sets post on mysqlperformanceblog.
下面是一段 PHP 代码,用于更改现有表上的编码:
它获取所有数据,对其进行转换,然后更新数据库表。 (mysql::array_qw函数将mysql查询结果转换为数组)
Here is a peace of PHP code that changes encoding on existing table:
It gets all the data, converts it, and then updates database table. (mysql::array_qw function converts mysql query result to array)