首页 > 解决方案 > PostgreSQL查询返回非Unicode字符串(波斯语)?

问题描述

我的数据库中有一个函数,名称为rep_request_minor()

我的数据库定义是:

  1. 编码:UTF8
  2. 排序规则:en_US.UTF8
  3. 排序规则类型:en_US.UTF8

问题是,当我在我的数据库中执行这个函数时,输出是正确的,但是当我在另一个程序中执行它时,输出会是错误的:(

那么我应该如何转换或转换查询的输出?

这是我在报告程序中的输出

在此处输入图像描述

标签: sqldatabasepostgresqlcharacter-encoding

解决方案


有两种选择:要么字符正确存储在数据库中,而您的客户误解了它们,要么它们没有正确存储在数据库中。

要对此进行诊断,请将length()函数应用于其中一个字符串,并查看结果是否符合您的期望或是否太大。

如果数据库中的字符串看起来正确,则您的客户端程序可能配置了错误的客户端编码。

如果数据库中的字符串错误,则问题可能是数据加载期间客户端编码错误(例如,您加载 UTF-8 数据,但将客户端编码设置为 LATIN-1)。


推荐阅读