用单引号替换为双单引号在 PostgreSQL 12 中不起作用

Replace with single quote to double single quote not working in PostgreSQL 12

将单引号替换为双单引号在 PostgreSQL 12 中无法正常工作,在 PostgreSQL 11 中工作正常。

PostgreSQL 12

查询:SELECT REPLACE(patient.note,'''',''''''), * FROM patient

输出文本:Medicare Secondary Veteran�s Administration

PostgreSQL 11

查询:SELECT REPLACE(patient.note,'''',''''''), * FROM patient

输出文本:Medicare Secondary Veteran’s Administration

如果您有任何解决方案,请告诉我。

这与你的替换无关,因为问题字符不是撇号'(U+0027),而是“右单引号”字符(U +2019).

可能是您连接到 PostgreSQL v12 的客户端编码设置不正确,因此字符被转换为不需要的内容。也有可能角色转移到v12时出错了

要对此进行诊断,请尝试

SELECT note::bytea FROM patient;

如果包含e28099,说明你数据库中的数据没有问题,问题出在你的客户端编码上。这假设数据库的服务器编码是 UTF8.