我还需要运行一个完整的拉丁语到UTF 8的文本转换,看起来很好吗?
我正在交换论坛软件,旧的论坛数据库使用拉丁1编码。新的论坛数据库对表格使用UTF8编码。
看起来导入器脚本从一个表直接复制到另一个表,而没有尝试修复任何编码问题。
我已经使用了这里列出的转换信息手动查找可见错误:http://www.i18nqa.com/debug/utf8-debug.html
文本的其余部分看起来很好,完全可读。
我有限的理解是,UTF-8与ASCII向后兼容,而Latin1主要是ASCII,所以只有边缘情况不同,需要更新。
所以我还需要运行一个完整的拉丁语到UTF 8的文本转换,看起来很好吗?
我宁愿不这样做,因为我已经改变了一些BB代码标签上的字段后,他们存储在UTF8,所以担心这些更新会把UTF8字符中的拉丁1字符,并试图做一个完整的转换混合字符集只会把事情进一步搞砸。
最佳答案
ISO 8859-1(拉丁语1)中0x80..0xFF范围内的任何字符都需要在UTF-8中重新编码为2个字节。对于0x80..0xBF,第一个字节是0xC2;对于0xC0..0xFF,第一个字节是0xC3。第二个字节是从拉丁语1的原始值派生出来的,它将两个最高有效位设置为1和0。对于字符0x80..0xBF,第二个字节的值与拉丁语1相同。如果您使用的是8859-15,您可能会有一些更复杂的转换(欧元符号的编码不同于其他拉丁1字符)。
有很多工具可以帮助你。iconv
就是这样。
关于mysql - 是否需要在拉丁语1-> UTF-8中解决隐藏的编码错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28119559/