1

我正在连接到远程 Firebird 2.1 DB 服务器,并且正在查询包含一些西里尔字符和一些拉丁字符的数据。

问题是当我在生产系统上部署应用程序时,西里尔字符看起来像这样:ÂÚÇÄÓØÍÀ。此外,当尝试记录来自数据库的内容时,西里尔文内容只是在日志文件中被跳过(即我根本没有看到“ ÚÇÄÓØÍÀ ” )。

在这一点上,我不确定我是否从数据库中获得了不一致的数据,或者生产环境由于某种原因无法识别这些字符。

我已经徘徊了很长时间并且没有想法,所以任何提示都会很棒。

我使用的开发机器运行 Windows 7 Ultimate SP1。我的系统语言环境是保加利亚语

生产服务器是通过 Paralles Plesk 面板访问的,我不确定下面是什么。

4

1 回答 1

2

如果您没有在连接属性中指定任何字符集,那么几乎所有 Firebird 驱动程序都默认使用连接字符集NONE。这意味着 Firebird 将发送存储在数据库中的字符串字节而不进行任何转换,另一方面,驱动程序将使用默认系统字符集将这些字节转换为字符串。如果您使用具有各种默认系统字符集的多个系统,您将得到不同的结果。

您应该始终明确指定连接字符集(WIN1251在您的情况下),除非您真的知道自己在做什么。

于 2013-06-01T12:46:00.170 回答