我在 Postgres 中使用 unaccent 但它不能转换特殊字符,例如:
ù : ù
但是对于 2 个含义相同但代码不同的字符没关系ù: ù
,第一个是字符 u + ̀ 我该
如何解决这个问题?太感谢了。
问问题
428 次
1 回答
2
不幸的是,你的问题是unicode normalization,PostgreSQL 没有做什么。而且自己实现也不是那么简单。
但是,因为您只想删除变音符号,您只需要实际删除作为unicode 组合字符unaccent()
的代码点(在调用函数之前或之后):
select regexp_replace(
'ùù',
'[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]',
'',
'g'
)
应该做的伎俩。
于 2016-10-20T11:28:42.457 回答