用多字符字符串替换字符

2023-12-12

我正在尝试替换德语和荷兰语变音符号,例如ä, ü, or ß。它们应该写成ae代替ä。所以我不能简单地将一个字符翻译成另一个字符。

有没有更优雅的方法来做到这一点?实际上它看起来像这样(尚未完成):

SELECT addr, REPLACE (REPLACE(addr, 'ü','ue'),'ß','ss') FROM search;

在尝试不同命令的过程中,我遇到了另一个问题:

当我寻找Ü我懂了:

错误:编码“UTF8”的字节序列无效:0xdc27

尝试过U&'\0220',它没有取代任何东西。仅通过使用ü(对于小写字母ü)已正确替换。必须用unicode做一些事情,但是如何解决这个问题呢?

来自德国的亲切问候。 :)


您的服务器编码似乎是UTF8。
我怀疑你的client_encoding不匹配,这可能会让您对正在处理的内容产生错误的印象。检查:

SHOW client_encoding;   -- in your actual session

并阅读相关答案:
无法在 Postgres 中插入德语字符
替换 PostgreSQL 中的 unicode 字符

工具链的其余部分也必须同步。例如,当使用 puTTY 时,必须确保终端与其余部分一致:Change settings... Window -> Translation -> Remote character set = UTF-8.

至于你的第一个问题,你已经有了最好的解决方案。最好用一串替换几个变音符号replace()声明。

正如您似乎已经知道的那样,单个字符替换使用(单个)会更有效translate()陈述。

Related:

  • 替换 PostgreSQL 中的 unicode 字符
  • 正则表达式删除字符串中所有出现的多个字符
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用多字符字符串替换字符 的相关文章

随机推荐