2013-04-17 127 views
17

我有一個表在我的數據庫,我想運行像轉換輸出爲utf8

SELECT column1, column2 FROM my_table WHERE my_condition; 

查詢,但我想了MySQL在utf8編碼返回column2。是否有任何在mysql中執行此類任務的功能?那是什麼?

+1

嘗試'SELECT column1,CONVERT(column2 USING utf8)...' –

回答

34

您可以使用CAST和CONVERT在不同類型的編碼之間切換。請參閱:http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html

SELECT column1, CONVERT(column2 USING utf8) 
FROM my_table 
WHERE my_condition; 
+1

比我在其他地方找到的答案要好得多。官方文檔對這個問題的回答是一個完整的笑話:「SELECT CAST(_latin1'test'AS CHAR CHARACTER SET utf8);」爲什麼不在變量名中添加更多的錯誤符號? – HoldOffHunger

8
SELECT CONVERT(CAST(column as BINARY) USING utf8) as column FROM table 
+0

謝謝你救了我的一天:) –

+0

謝謝!拯救我的一天! – Portekoi

2

增加:

當使用MySQL 客戶端庫,那麼你應該避免轉換回你連接的默認字符集。 (見mysql_set_character_set()[1]

在這種情況下,使用一個額外的強制轉換爲二進制:

SELECT column1, CAST(CONVERT(column2 USING utf8) AS binary) 
FROM my_table 
WHERE my_condition; 

否則,SELECT語句轉換爲UTF-8,但是你的客戶端庫轉換回一個(可能不同)默認連接字符集。