Ich arbeite in PostgreSQL-Datenbank und ich habe Textspalte, die in verschiedenen Sprachen wie Russisch, Chinesisch, Koreanisch, Englisch usw. Obwohl unsere Anwendung diese Sprachen gut behandelt, haben wir ein Problem zu behandeln Nicht-UTF-8 Zeichen.Identifizieren versteckte nicht UTF8 codierte Zeichen
Zum Beispiel, wenn Sie das Bild von Notepad ++, wo ich Encoding> Encode in UTF-8 getan habe, zeigt es alle nicht erkennbaren Zeichen.
Wir stehen jedoch vor der Herausgabe solcher Datensätze, die in Postgres nicht verarbeitet werden können. Etwas wie eine Flagge sollte auch tun, aber ich versuche etwas wie unten, aber es markiert die gültigen russischen Datensätze als auch Notepad ++ zeigt explizit die versteckten/nicht-UTF-8 Zeichen.
Sonderbare Sache über diese Zeichen sind, dass sie zeigen sich regelmäßig Auswahlabfrage nicht, aber wenn ich sie konvertieren zu „UTF-8“, zeigen diejenigen, die wie unten nach oben.
versucht so etwas wie dieses (unter Abfrage), aber es scheint nicht, das heißt geben Sie mir die gewünschte Ausgabe zu arbeiten. Die Erwartung besteht darin, eine Markierung für solche Datensätze zu setzen, die ungültige versteckte HTML-Referenzen haben, aber nicht den gültigen Text wie den gültigen russischen Satz im Snapshot verlieren. Sollte nur solche Texte eindeutig identifizieren können.
select text, text ~ '[^[:ascii:]]', text ~ '^[\x00-\x7F]*$'
from sample_data;
Beispieldaten -
". Я не наркоман Это у меня всегда, когда мне афигитительно А если серьёзно, это интересно, ..."
„Ya le Dieron amor a la foto de instagram de mi #UberCALAVERITA? "
der "Executive Admininstrative Assistent in Toronto, ON für eine Gruppe"
"Сегодня валютные стратеги BMO обновили прогнозы î основным валютам на ближайшие пять кварталов (на конец периода): читать далее ..."
„Flicitations Gestion d'actifs für 6 Trophes # FundGradeA + 2016 de fonds communs de placement: "