2013-10-07 42 views
2

我必須在可能包含字符''的Mysql字符串中插入。我試過這個:MySQL中的Unicode字符表情4字節

ALTER TABLE `table_name` 
DEFAULT CHARACTER SET utf8mb4, 
MODIFY `colname` VARCHAR(200) 
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL; 

當我插入'';

INSERT INTO `table_name` (`col_name`) VALUES (''); 

我得到以下

SELECT * FROM `table_name`; 

????

如何才能在select語句中獲得正確的值?

非常感謝。

+0

您是否設置了連接編碼?你的MySQL客戶端是否使用支持這種字符的字體? –

回答

5

您還需要將連接編碼設置爲utf8mb4。這取決於你如何連接到MySQL如何做到這一點。 SET NAMES utf8mb4是與API無關的SQL查詢。

MySQL調用的什麼utf8是實際的UTF-8的啞元子集,僅覆蓋BMP(字符0000FFFF)。 utf8mb4實際 UTF-8可以編碼所有的Unicode代碼點。如果您的連接編碼爲utf8,那麼所有數據都會通過UTF-8的這個子集進行壓縮,並且您無法在BMP之上發送或接收來自MySQL的或來自MySQL的字符。

相關問題