首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编码"UTF-8“的字符0xc 286在"WIN1252"....On转换中没有等效的iconv postgres还原崩溃。

编码"UTF-8“的字符0xc 286在"WIN1252"....On转换中没有等效的iconv postgres还原崩溃。
EN

Stack Overflow用户
提问于 2011-12-13 13:15:47
回答 2查看 2.2K关注 0票数 3

我正在开发一个使用delphi和Postgres9.0的软件,最初的开发人员选择数据库编码为'SQL_ASCII'...因此,我们将数据库的编码改为UTF-8。我们开始得到这个错误之后

单击其中一个复选框(表单从数据库中填充),出现错误的查询是

从日记中选择*在(‘2005407’)中进行调查;

但是这个错误只出现在很少的复选框中,而不是全部。

更改是直接的,但是我们有大量的历史数据,我们必须重新存储到新创建的UTF-8 database..so中,我遵循了我在网络和堆栈溢出上找到的步骤。

  1. 将数据库转储为e- UTF-8 SQL_Ascii_backup.backup
  2. 使用图标将SQL_ASCII转换为UTF-8。 “C:\ Files\GnuWin32\bin\iconv.exe”-f UTF 8859-1 -t UTF-8 C:\SQL_Ascii_backup.backup>UTF_Backup.backup 3.创建一个编码为UTF-8的新数据库,并重新存储备份UTF_Backup.backup

但是当我试图恢复它时,我发现了他的错误。

然后,我尝试将原始的SQL_ASCII数据库转储为普通的SQL_Ascii_.sql文件,然后再次使用i更改encoding..and,然后进行还原。

代码语言:javascript
复制
  >"C:\Program Files\PostgreSQL\9.0\bin\psql.exe"-h localhost -p 5434 -d myDB -U myDB_admin -f C:\converted_utf8.sql

这是恢复正常,但我仍然得到错误。

编码"UTF-8“的字符0xc 286在”WIN1252“中没有对应的字符;

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-13 13:49:41

C2 86是字符U+0086的UTF-8编码,是一种模糊的C1控制字符.此字符存在于ISO-8859-1中,但不存在于代码页1252的默认代码页1252中,后者在ISO-8859-1具有C1控件的空间中具有可打印字符。

您要转换为UTF-8的iconv命令有-f ISO8859-1,但您的意思可能是-f windows-1252。这将字节86映射到字符。

票数 6
EN

Stack Overflow用户

发布于 2011-12-14 11:49:35

我消除了错误

编码"UTF-8“的字符0xc 286在”WIN1252“中没有对应的字符;

通过遵循dan04答案,但防止图标无法转换转储

  1. 转储数据库UTF-8 (做一个简单的dump..so,您可以找到故障点)
  2. SQL_ASCII转换为UTF-8,使用 “C:\ Files\GnuWin32\bin\iconv.exe”-f windows-1252 -t UTF-8 C:\MqPlainDump.sql>convertedDump.sql
  3. 替换“[]”字符(在我的例子中,这是导致trouble..its为正方形字符的)
  4. 恢复数据库

应用程序很好(就我的情况而言)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8489881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档