有没有办法强制 PostgreSQL 使用 UTF-7 编码进行连接?

有没有办法强制 PostgreSQL 使用 UTF-7 编码进行连接?

我有一个 PostgreSQL 数据库,它使用一种神秘的文本编码,我无法更改它。有没有办法以透明的方式(对于知情的客户端)以 UTF-7 格式存储文本,以便数据库引擎不会抱怨它无法转换 Unicode 字符,但客户端仍然可以使用任何 Unicode 字符?我可以手动进行此转换,但我希望有一种方法可以在不进行手动转换的情况下完成此转换。

答案1

您可以使用SQL_ASCII,它告诉数据库透明地传递文本字节而不进行任何验证或转换。

这通常是一个糟糕的想法,会导致数据库中出现不兼容和不匹配的文本编码的可怕混合,一些应用程序插入 UTF-8,其他应用程序插入 latin-1 等。但是,如果您需要使用数据库实际上无法理解的编码,这是一个选择。

您的替代方案是为 PostgreSQL 添加对 utf-7 的支持。这可能不太难,因为所有编码处理都已经很好地抽象化了。

相关内容