将单引号替换为双单引号在 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
。
关于sql - 用单引号替换为双单引号在 PostgreSQL 12 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58928769/