2009-12-10 58 views
14

我有一個正確設置爲UTF-8字符集的MySQL表。我懷疑一些數據插入到我的一列中已被雙重編碼。我期待看到一個不間斷的空格字符(UTF-8 0xC2A0),但是從這個表中選擇這個列時得到的是四個八位字節(0xC3A2 0xC2A0)。這就是我期望看到的是,在某些時候,有人將UTF-8 0xC2A0視爲ISO-8859-1,然後嘗試在插入到MySQL之前再次編碼爲UTF-8。如何查看存儲在MySQL列中的原始字節?

我上面的測試中,我看到四個八位字節涉及使用Perl的DBD :: mysql從MySQL中選擇此列。我想將Perl和DBD :: mysql排除在外,以驗證這四個八位字節實際上是MySQL存儲的內容。有沒有辦法直接與SQL查詢做到這一點?

+0

HEX做到了,看起來我對錶中的雙重編碼是正確的。我需要查看上游系統來處理編碼問題。 – 2009-12-10 16:06:15

+0

瑞恩!你對UTF8瞭解如此之多以至於你能夠正確猜測這個猜測! – portforwardpodcast 2013-01-16 07:14:48

回答

19
mysql> SELECT HEX(name) FROM mytable; 
+-----------+ 
| hex(name) | 
+-----------+ 
| 4142C2A0 | 
+-----------+ 
相關問題