私はUTF-8文字のデータベースを持っていますが、これは正しく表示されていません。 UNHEX(HEX(column)) != column
の条件を使用して、どのフィールドにUTF-8文字があるかを知ることができたと考えました。結果はかなり面白いです:MySQL - UNHEX(HEX(UTF-8))の問題
id | content | HEX(content) | UNHEX(HEX(content)) LIKE '%c299%' | UNHEX(HEX(content)) LIKE '%FFF%' | UNHEX(HEX(content))
49829102 | | C299 | 0 | 0 | c299
874625485 | FFF | 464646 | 0 | 1 | FFF
これはどうやって可能ですか、この文字を含む行をどうやって見つけることができますか?
- 編集(2):私の編集が削除されているので(おそらくJamWafflesが私の美しいデータテーブルを修正していたとき)、ここで再びそうです:エディタがUTF-8文字を取り除くと、
- 編集(3):実際にはUNHEX(HEX(content))
の表現が間違っています。私のマルチバイト文字を表示するには、次のようにしなければなりませんでした。 SELECT UNHEX(SUBSTR(HEX(content),1)))
。悲しいことに、UNHEX(C299)はUNHEX(C2)+ UNHEX(99)として機能しないので、作図委員会に戻ってきます。
ので、我々はスキーマを参照することができ、あなたのテーブルのためのTABLE'をCREATE SHOW 'の結果を投稿してくださいを参照してください。また、結果を得るために実行した完全なクエリを投稿してください。 –
@Ikeウォーカー確か: テーブル: ''コンテンツ\ '\'テーブル\ '(' int型(11 \ ID '\ )NOT NULL AUTO_INCREMENT、 \ CREATE TABLEをNOT NULLとLONGTEXT、 PRIMARY KEY(\' ID \\) )ENGINE = MyISAM AUTO_INCREMENT = 874625486 DEFAULT CHARSET = utf8' クエリ: 'SELECT id、content、HEX(content)、UNHEX(HEX(content))LIKE '%c299%'、UNHEX(HEX(content )) '%FFF%'、UNHEX(HEX(内容))と同様に\ 'テーブル\" – eithed