【发布时间】:2011-11-17 14:12:29
【问题描述】:
我想将 3.23.49 的 MySQL 数据库转移到 5.0.51 的 MySQL 数据库。现在我已经导出了 SQL 文件,可以导入了。我查看了 sql 文件,Notepad++ 告诉我文件是用 ANSI 编码的。我查看了这些值,其中一些在 ANSI 中,其中一些在 UTF-8 中。最好的方法是什么?
- 我应该在 Notepad++ 中更改编码吗?
- 我应该使用
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;吗? - 我应该使用 iconv 吗?
- 我是否必须查看每个表并进行必要的更改?
- 导入的设置是什么? MYSQL323 兼容模式和编码 latin1?
- 如果 php 脚本使用其他编码,我是否必须注意一些事情?
感谢您的提示!
【问题讨论】:
-
some of them are in ANSI and some of them are in UTF-8是什么意思?据我所知,ANSI 是mysqldump的一种模式,它与文件的编码无关。 -
该文件根据 Notepad++ ANSI 编码。我有带有变音符号(äöü...)的条目,它们显示正确。在另一个表中,我有一个 ü whis 表示为
ü- UTF-8 编码。如果我使用 Notepad++ 将编码更改为 UTF-8,则 UTF-8 字符是可以的,但 ANSI 字符就像xF6.这就是情况的样子。 -
那么你的意思可能是ascii,或者更好的单字节编码)
-
这些表(真的是列),其中变音符号看起来不同,有不同或相同的编码吗?如果编码相同,那么您的数据几乎已损坏,您需要有选择地(其中的 n 个特定部分)使用 iconv 将其转换为一种编码。
-
数据库有不同的表。一个表比 ASCII,另一个 UTF-8。我知道系统有一些编码问题,现在我想解决它。但是同一张表的编码是一样的。
标签: mysql encoding migration transfer