最近我们将数据库从 SQL_ASCII 迁移到 UTF8 编码。运行应用程序后,我们开始收到错误消息,例如
编码 UTF-8 的字符 0xc296 在“WIN1252”中没有等价物
所以我们遇到了 iconv 并且转换是在以下步骤中完成的
1-将现有数据库转储为
"C:\Program Files\PostgreSQL\9.0\bin/pg_dump.exe" --host localhost --port 5433 --username "myadmin" --format plain --encoding UTF8 --verbose --file "C:\UTF8Dump.sql" mydb
使用 [b]iconv[/b] 进行 2 转换
"C:\Program Files\GnuWin32\bin\iconv.exe" -c -f windows-1252 -t UTF-8 C:\UTF8Dump.sql>C:\ConvertedUTF8Dump.sql
3 创建一个nerw UTF-encoded DB
4 从第 2 步导入 sql
我们摆脱了错误,但是
在我们得到的其他一些系统上
迁移到 UTF8 后,编码 UTF-8 的字符 0xe2809a 在“LATIN9”问题中不等价
所以我们尝试了相同的上述步骤,但不同的转换是这样的
"C:\Program Files\GnuWin32\bin\iconv.exe" -c -f ISO-8859-15 -t UTF-8 C:\UTF8Dump.sql>C:\ConvertedUTF8Dump.sql
但错误仍然是
编码 UTF-8 的字符 0xe2809a 在迁移到 UTF8 后在“LATIN9”问题中没有等价物
有任何想法吗?