$C3 $A2 $C2 $80 $C2 $99
は、UTF-8でエンコードされたUnicode ’
文字のダブルエンコードUTF-8形式$E2 $80 $99
です。Delphi:ダブルエンコードされたUTF8テキストを復元する方法
$E2
は、1バイト文字として処理され、UTF-8は$C3 $A2
としてエンコードされます。 $80
は$C2 $80
として再符号化され、$99
は$C2 $99
として再エンコードされます。
$E2 $80 $99
をこれよりもスマートな方法で返すことができますか?
ThisText := AnsiReplaceStr(ThisText, #$C3#$A2#$C2#$80#$C2#$99, '’');
すべての文字は?
不要なdouble-UTF8エンコーディングが頻繁に発生する場合があります。 ソリューション(?)はオンラインで提供されますが、Python、PHPまたはSQLでのみ提供されます。このような
何か:
CONVERT(CAST(CONVERT(field USING latin1) AS BINARY) USING utf8)
$C2 $80
も$C2 $99
でもないが、CP1252の文字であるため、私見では、ここでは動作しません。 ANSIの変換では、$E2
$ 80 $99
の代わりに$E2 $3F $3F
が得られます。
これは大丈夫ですか? –
「私(誰か他の人ですか?)がUTF8文字列を取り、それがASNIテキストであるかのように扱い、UTF8に変換しましたか?確かに良い方法は、それを回復しようとするのではなく、最初にそれをすることではありませんか?治療よりも予防が大切です! – Dsm