gpt4 book ai didi

sql - 用 SQL 替换错误的编码字母

转载 作者:行者123 更新时间:2023-11-29 12:34:14 25 4
gpt4 key购买 nike

我有一个包含来自互联网的数据的数据库,但是有些页面的编码错误,像 ã 这样的字母变成了 ã£ç 变成了 ç

有什么可能解决这个问题?我正在使用 PostgreSQL。

我可以使用替换,但我需要为每个案例做一个替换?我在考虑翻译,但我看到它只将一个字符转换为另一个字符。可以将两个字符转换为一个字符吗?类似于:TRANSLATE(text,'ã£|ç','ã|ç')

最佳答案

这个特殊问题看起来像您将 UTF-8 编码解释为单字节字符集(“ç”变成“§”表明 iso-8859-1)。

您可以通过一长串 replace(...) 调用单独修复这些问题。或者你可以使用 postgresql 自己的字符转换工具:

select convert_from(convert_to('£20 - garçon', 'iso-8859-1'), 'utf-8')

按顺序,这是:

  • 使用 iso-8859-1 编解码器将字符串转换回二进制(这只会将 unicode 代码点改回字节,假设所有代码点都在 256 以下)
  • 将二进制输出重新解释为 UTF-8,因此 {0xc2, 0xa3} 等序列被翻译为“£”

关于sql - 用 SQL 替换错误的编码字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com