即使输入是 Latin1,PostgreSQL 也可以将条目转换为 UTF-8 吗?

问题描述 投票:0回答:2
我有 psql (PostgreSQL) 10.10 和 client_encoding 是 UTF8。现在条目是由旧的 Delphi 版本创建的,它不能使用 UTF8,因此 DB 中的条目具有未表示为 UTF8 的特殊符号。例如,™ 符号由 \u0099 表示。当符号输入数据库时是否可以强制转换?现在还不能选择切换 Delphi。如果这是一个基本问题,我很抱歉。我对数据库的了解有限。

postgresql encoding utf-8 iso-8859-1
2个回答
2
投票
看起来您的 Delphi 客户端

不是使用 LATIN1,而是使用 WINDOWS-1252,因为 ™ 是该编码中的代码点 99。

您可以在每个会话中更改

client_encoding

,这就是您应该做的。

要么让你的应用程序执行

SET client_encoding = WIN1252;
或设置 

PGCLIENTENCODING

 环境变量或指定 
client_encoding
 作为连接字符串的一部分。


0
投票
在 Postgres SQL 中使用此命令更新到 UTF-8

还将database_name替换为您的数据库名称

update pg_database set encoding = pg_char_to_encoding('UTF8') where datname='database_name';
    
© www.soinside.com 2019 - 2024. All rights reserved.