我正在将大量 mysql 数据库从几个共享的 web 主机迁移到一个共享的 web 主机。
其中大部分是葡萄牙语,所以有很多特殊字符。我正在迁移的一些数据库是 latin1,一些是 cp1251,一些是 utf8。
当然,简单地转储数据库,然后将转储恢复到新主机上会完全搞砸编码和“?” 字符和其他废话出现在与数据库相关的实际网站中。
在小范围内,可以接受 html 字符集标签,知道要转储/恢复为什么,但问题是我们正在处理数千个数据库和网站,并且迁移都是通过自动完成的几个脚本。
我正在寻找有关转储/恢复这些数据库的最佳方式的建议,假设执行工作的脚本将不知道 HTML 标记中指定的编码。
到目前为止,我已经尝试使用实际的 mysqldump 工具,以及使用 php 脚本模仿它,并从内存中转储而不是从文本文件中转储,这些似乎都不能完美地将数据从一个复制到其他没有编码问题。
我是否应该使用 UTF8 对转储进行编码,然后不管 html 代码页如何恢复原样?无论 HTML 代码页如何,都以 UTF8 转储和恢复?在每个 create table 语句中找到的默认字符集中转储和恢复?
我对这些不同场景的影响和影响的理解是有限的,但我需要知道的基本上是是否有一种方法可以完美地复制数据而不会在 2 个数据库服务器之间出现编码问题,而无需知道脚本的 HTML 使用的代码页正在访问数据。