加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 编码“UTF-8”的字符0xc286在“WIN1252”中没有等效…

发布时间:2020-12-15 09:05:21 所属栏目:大数据 来源:网络整理
导读:我正在开发一个使用delphi和postgres 9.0的软件, 原始开发人员选择数据库编码为’SQL_ASCII’… 所以我们将数据库的编码更改为UTF-8 .. 我们之后开始收到此错误 点击其中一个复选框 (表单从数据库中填充) 错误来自的查询 ‘select * from diary where survey
我正在开发一个使用delphi和postgres 9.0的软件,
原始开发人员选择数据库编码为’SQL_ASCII’…
所以我们将数据库的编码更改为UTF-8 ..
我们之后开始收到此错误

点击其中一个复选框
(表单从数据库中填充)
错误来自的查询

‘select * from diary where survey in (‘2005407′)’;

但是这个错误只出现在几个复选框而不是ALL

这个改变是直截了当的,但我们有大量的历史数据,我们将不得不重新存储到新创建的UTF-8数据库中.所以我按照我在网上找到的步骤和stackoverflow也

>将数据库转储为e-UTF-8 SQL_Ascii_backup.backup
>使用iconv将SQL_ASCII转换为UTF-8

"C:Program FilesGnuWin32biniconv.exe" -f ISO8859-1 -t UTF-8 C:SQL_Ascii_backup.backup>UTF_Backup.backup

3.创建一个编码为UTF-8的新数据库,并重新存储备份UTF_Backup.backup

但是,当我尝试恢复它时,我得到了他的错误

然后我尝试将原始SQL_ASCII数据库转储为纯SQL_Ascii_.sql文件
然后我再次使用iconv来改变编码……然后恢复

>"C:Program FilesPostgreSQL9.0binpsql.exe"-h localhost -p 5434 -d myDB -U myDB_admin -f C:converted_utf8.sql

这是正确恢复,但我仍然在纠正错误.

‘character 0xc286 of encoding “UTF-8” has no equivalent in “WIN1252”;

解决方法

C2 86是字符U 0086的UTF-8编码,一个不起眼的 C1 control character.该字符存在于 ISO-8859-1中,但不存在于Windows的默认 code page 1252中,其在ISO-8859-1具有C1控件的空间中具有可打印字符.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读