以下查询:
select lower('ALGODÓN'), upper('algodón')在以下方面的成果:
lower | upper
---------+---------
algodÓn | ALGODóN
(1 row)另一方面,Python得到了正确的结果:
>>> 'ALGODÓN'.lower()
'algodón'是否有办法让postgres正确地转换非ascii字符的大小写?
发布于 2022-02-15 21:42:18
你用错了校对。例如,使用C排序规则:
SELECT lower('ALGODÓN' COLLATE "C"), upper('algodón' COLLATE "C");
lower │ upper
═════════╪═════════
algodÓn │ ALGODóN
(1 row)但是对于en_US.utf8 (Linux):
SELECT lower('ALGODÓN' COLLATE "en_US.utf8"), upper('algodón' COLLATE "en_US.utf8");
lower │ upper
═════════╪═════════
algodón │ ALGODÓN
(1 row)语言不可知论的ICU校对也是正确的:
SELECT lower('ALGODÓN' COLLATE "und-x-icu"), upper('algodón' COLLATE "und-x-icu");
lower │ upper
═════════╪═════════
algodón │ ALGODÓN
(1 row)https://stackoverflow.com/questions/71133679
复制相似问题