字符的 Postgres unaccent 函数

Postgres unaccent function for character

我在 Postgres 中使用 unaccent 但它无法转换特殊字符,例如: ù : ù
ù: ù
没关系 2个字同义码不同,第一个是字u + ̀
我该如何解决这个问题? 非常感谢。

很遗憾,您的问题是 unicode normalization, what PostgreSQL does not do。而且自己实现起来也不是那么简单。

但是,因为您只想删除变音符号,所以您只需要实际删除代码点(在调用 unaccent() 函数之前或之后),即 unicode combining characters:

select regexp_replace(
  'ùù',
  '[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]',
  '',
  'g'
)

应该可以解决问题。