MyISAM utf-8编码问题

发布于 2024-12-02 15:21:54 字数 234 浏览 1 评论 0原文

在存储特殊字符时遇到一些问题后,我将数据库从 latin1_swedish_ci 转换为 utf8_unicode_ci 排序规则。 我已将数据库、表和列的字符集设置为 utf8,将排序规则设置为 utf8_unicode_ci。

只有 InnoDB 表可以正确存储 utf-8 数据,而 MyISAM 表则不能。例如,ü 变为 ⁄。

这里可能发生了什么?我错过了什么吗?

MySQL 版本 5.0.77

I converted a database from latin1_swedish_ci to utf8_unicode_ci collation after havind some trouble storing special characters.
I've set the character set of the database, tables and columns to utf8 and the collation to utf8_unicode_ci.

Only the InnoDB tables store the utf-8 data correctly, and the MyISAM tables don't. ü becomes ü for example.

What could be going on here? Am I missing something?

MySQL version 5.0.77

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

债姬 2024-12-09 15:21:54

如果您使用框架(比如说 Rails),您必须确保与数据库的连接使用正确的编码。在Rails中,它将被定义为database.yml文件中的一个参数,编码为:utf8

In the event that you are using a framework (let's say Rails) you must ensure that the connection to the database is using the proper encoding. In Rails it would be defined as an argument in your database.yml file with encoding: utf8

阳光下慵懒的猫 2024-12-09 15:21:54

在新表 InnoDB 上使用

UPDATE my_table SET my_column = CONVERT(CAST(CONVERT(my_column USING latin1) AS BINARY) USING utf8);

use on new table InnoDB

UPDATE my_table SET my_column = CONVERT(CAST(CONVERT(my_column USING latin1) AS BINARY) USING utf8);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文