我遇到了chagreet和PostgreSQL的收集问题。当我设置一个新的数据库时,我可以在C,Greek_Greece.1253和POSIX之间选择Collation和Character Type。我选择UTF8进行编码,Greek_Greece.1253用于charset / collation,我使用ADO连接(Devart提供程序)输入一些希腊字符。
当我使用ADO进行选择时,我没有得到我期望找到的数据(希腊语单词)但是我得到了一些看起来奇怪的字符(而且我认为我得到的结果超出预期)。
我想将校对和字符类型更改为接近UTF-8的内容,例如Greek_Greece.UTF-8,但它不可用并且由pgAdmin允许。
我的设置在windows中。您是否知道如何使UTF-8可用于以charset类型进行选择或如何以更好的方式检索数据?
答案 0 :(得分:2)
看起来您的操作系统不支持UTF-8中的希腊语排序规则。
您可以使用以下查询查看PostgreSQL可用的所有排序规则:
select * from pg_collation;
希腊语是el_GR.utf8
。
如果列出,您将使用查询创建数据库:
CREATE DATABASE greek WITH ENCODING 'UTF-8' LC_COLLATE='el_GR.utf8' LC_CTYPE='el_GR.utf8' TEMPLATE=template0;
如果未列出,则需要在操作系统级别添加语言支持。
我对Windows不太熟悉,但是从内存中有一种方法可以在控制面板中添加语言(不知道这是否会增加UTF-8支持)。
使用Debian Linux非常容易:
$ dpkg-reconfigure locales
无论如何,我强烈建议您不要对数据库中的任何内容使用windows-1253编码。根据经验,非utf8数据将导致很多痛苦......
答案 1 :(得分:0)
dotConnect for PostgreSQL connection string 包含Unicode参数。尝试将其设置为True。