小编Rus*_*rry的帖子

为什么 PostgreSQL 仅限于“application_name”的 ASCII 字符?

免责声明:我将 PostgreSQL 和 PostgreSQL 单独用于我的所有数据库。这不是某种“仇恨”。

这是困扰我多年的事情,但在这一点上,在2020年,它只是荒谬的。

来源:https : //www.postgresql.org/docs/current/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHAT

application_name 可以是任何少于 NAMEDATALEN 字符(标准版本中为 64 个字符)的字符串。它通常由应用程序在连接到服务器时设置。该名称将显示在 pg_stat_activity 视图中并包含在 CSV 日志条目中。它也可以通过 log_line_prefix 参数包含在常规日志条目中。在 application_name 值中只能使用可打印的 ASCII 字符。其他字符将替换为问号 (?)。

(强调我的。)

所以,自称“世界上最先进的开源关系数据库”不支持 Unicode/UTF-8 这个特定的东西,但在其他地方。它迫使我(和我的潜在老板,如果我有的话)看到一堆“???????????” 遍布控制面板,例如在 pgAdmin 4 中。

我听说这应该是出于“安全问题”的考虑。在他们设置“Unicode 引擎”之前的某个阶段设置了有关 application_name 的某些内容或类似的内容。我不明白。如果真的是这样,当然,力ASCII-只为应用程序名称时,它在最初的连接设置,但允许使用Unicode / UTF-8后当设置应用程序名称,连接已经建立后使用,在正常查询“SET”关键字!

我不明白。为什么我被迫到处看到这些丑陋的问号,只是因为我的语言恰好包含的不仅仅是 A-Za-z?即使以英语为中心的数据库也可能有与其他语言相关的脚本或具有花哨名称的服务,因此即使 PG 项目以美国为中心,这仍然不能成为借口。

postgresql

-3
推荐指数
1
解决办法
224
查看次数

标签 统计

postgresql ×1