【发布时间】:2017-06-07 17:16:22
【问题描述】:
我在 postgreSQL 数据库中工作,并且我有多种语言的文本列,如俄语、中文、韩语、英语等。虽然我们的应用程序可以很好地处理这些语言,但我们在处理非 UTF-8 字符时遇到了问题。
例如,如果您从我已经完成编码的 notepad++ 中看到图像 > 以 UTF-8 编码,它会整齐地显示所有无法识别的字符。
但是,我们面临在 postgres 中将此类记录标记为不可处理的问题。像标志之类的东西也应该做,但我正在尝试类似下面的东西,但它也会标记有效的俄罗斯记录,而 notepad++ 明确显示隐藏/非 UTF-8 字符。
这些字符的奇怪之处在于它们不会显示常规选择查询,但是当我将它们转换为“UTF-8”时,它们会显示如下。
尝试过这样的事情(下面的查询),但它似乎不起作用,即给我想要的输出。期望为具有无效隐藏 HTML 引用但不会丢失有效文本(如快照中的有效俄语句子)的此类记录设置一个标志。应该能够清楚地识别只有这样的文本。
select text, text ~ '[^[:ascii:]]', text ~ '^[\x00-\x7F]*$'
from sample_data;
样本数据 -
“Я не наркоман. Это у меня всегда, когда мне афигитительно. А если серьёзно, это интересно,...”
“Ya le dieron amor a la foto de instagram de mi #UberCALAVERITA?”
“多伦多的执行行政助理,ON 为一个团体”
"Сегодня валютные стратеги BMO обновили прогнозы по основнозы по основным валютам на ближайшие пять кварталов (на конеец периода): киталов (на конеец периода)
“Flicitations Gestion d'actifs pour 6 Trophes #FundGradeA+2016 de fondas communs deplacement :”
【问题讨论】:
标签: postgresql encoding utf-8