2017-04-08 114 views
2

UNACCENT函数可以删除字符以外的变音符。但是,在我的情况下,它只能删除带1个变音符的字符,例如Postgres UNACCENT具有超过1个变音符的字符

  • 超人
  • AAA

对于具有多于1个附加符号字符,UNACCENT不执行任何操作,例如用于

  • Hồ
  • 一个
  • PHO

有没有办法让Postgres的剥离从这些人物的口音?

感谢

回答

4

PostgreSQL的unaccent模块不使用Unicode正常化,但只有一个简单的搜索和替换字典。默认词典unaccent.rules不包含这些越南语字符,因此没有任何操作。

虽然你可以创建你自己的unaccent字典。 As explained in the documentation

  1. 与像

    内容
    ầ a 
    Ầ A 
    ồ o 
    Ồ O 
    
  2. 移动vietnamese.rules到该文件夹​​$SHAREDIR/tsearch_data/(通常/usr/share/postgresql/tsearch_data

  3. 运行功能

    SELECT unaccent('vietnamese', 'Hồ ầ phố'); 
    --    ^~~~~~~~~~~~~ 
    
  4. 创建一个文本文件 vietnamese.rules
+0

我害怕创建自己的规则,因为我没有访问数据库计算机,但我想没有避免它。 – Khanetor

相关问题