【发布时间】:2016-09-15 17:18:39
【问题描述】:
我有一个使用 UTF8 编码的 PostgreSQL 数据库。我相信这是默认编码。
我有一个 GUI 应用程序,它发出一个典型的 SELECT 查询,带有一个 WHERE 子句。查询是参数化的,参数的内容通常由最终用户粘贴。该值不是从文本文件等中读取的 - 它被粘贴到备忘录编辑中。
这是查询...
cmd.CommandText = @"SELECT history_id, emplid, displayname
FROM ""MAX_HISTORY_IDS""
WHERE searchname ILIKE :searchname";
cmd.Parameters.Add("searchname", PgSqlType.VarChar).Value = "Sievert,Jürgen";
在上面的代码中,参数值Sievert,Jürgen 将是从备忘录编辑框或文本输入等中解析出来的变量。该名称也是导致此查询结果的名称的真实示例来自 Postgre 的无效 UTF8 字节序列错误。
现在,我假设数据库上的 UTF8 编码很好,并且对于此类内容来说是相当标准的。这里有什么问题?这个文本参数的编码不是UTF8吗?我怎样才能让这个查询工作,或者数据库上的编码不合适?
【问题讨论】:
标签: c# postgresql encoding utf-8