用单引号替换为双单引号在 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
.
将单引号替换为双单引号在 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
.