我们正在尝试迁移数据库内容(使用 PHP 脚本)。
内容已复制到 CMS 中,然后写入数据库。复制的内容可以来自任何字符编码方案(例如 IS0-...-14)和任何网站。
PHP CMS 是 UTF-8,因此粘贴到文本框中的字符在 POST 时将转换为 UTF-8,然后作为 Latin-1 写入数据库(MSSQL db...db charset 和 query charset 都是 latin-1 )。
我们正在拼命思考如何在 PHP 中扭转这种情况,或者甚至可能(得到它,使字符完全是 UTF-8)。
如果我们能得到逻辑,我们可以用 C++ 编写一个扩展,如果 PHP 不能处理它(它可能不能,mb_shite 和 iconv)。
我一直迷失在 UTF-8 4 字节字符流中(即 0-127 is..ect)。
有人有什么想法吗?
到目前为止,我们已经使用 PHP 的 ord() 函数尝试为每个 char 生成一个 Unicode/Acsii char ref(我知道 ord 返回 ASCII,但它打印超过 128 个字符编号,我认为如果它只是 ASCII 的话很奇怪,或者它可能会重复自己)。
我的想法是 latin1 将难以转换回 UTF-8,并且由于 Latin1 (ISO-...-1)中的单字节字符流而导致黑色菱形。