MySQLテーブルがUTF-8文字セットに正しく設定されています。私のカラムの1つに挿入されたいくつかのデータが二重にエンコードされていると思われます。私は改行しないスペース文字(UTF-8 0xC2A0)を見ることを期待していますが、このテーブルからこの列を選択すると4オクテット(0xC3A2 0xC2A0)が得られます。これは、ある時点で、誰かがISO-8859-1としてUTF-8 0xC2A0を扱ってから、MySQLに挿入する前にUTF-8に再度エンコードしようとしたときに、私が期待するものです。MySQLの列に生のバイトが格納されているのを確認するにはどうすればよいですか?
私が4オクテットを見ている私のテストでは、PerlのDBD :: mysqlを使ってMySQLからこの列を選択します。これらの4つのオクテットが実際にMySQLが格納しているものであることを検証するために、PerlとDBD :: mysqlを方程式から取り除きたいと思います。 SQLクエリを直接これを行う方法はありますか?
HEXはそれをやった、と私はテーブル内のダブルエンコーディングについて正しかったように見えます。私はエンコーディングの問題に対処するために上流のシステムを見る必要があります。 –
Ryan!どのようにあなたはこの推測を正しく行うことができるUTF8について多くのことを知っていますか? – portforwardpodcast