爲什麼在執行設置名稱utf8mb4後,列名更改爲問號?見下文:爲什麼在執行設置名稱utf8mb4後,列名更改爲問號?
mysql> show variables like 'character%' ;
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/server-5.6/share/charsets/ |
+--------------------------+---------------------------------------+
mysql> select '\U+1F600';
+------+
| |
+------+
| |
+------+
mysql> set names utf8mb4;
mysql> select '\U+1F600';
+------+
| ? |
+------+
| |
+------+
在我看來,utf8mb4旨在支持這些表情符號字符。爲什麼更改爲utf8mb4,列名更改爲問號?
此外,我從網站(http://getemoji.com/)複製了表情符號,然後粘貼到終端。如果我只是手動輸入'\ U + 1F600'。見下:
mysql> select '\U+1F600' ;
+---------+
| U+1F600 |
+---------+
| U+1F600 |
+---------+
所以我想當我把它粘貼在終端有隱含的事情發生。這個隱式轉換( - >'\ U + 1F600')也許可以解釋這個現象。
謝謝!可能你是對的,但我不太確定。 – zhuguowei
我非常有信心,文檔通常會說所有表元數據都專門存儲爲utf8。所以它非常有意義。 –
嘿,我發現了這個問題的一些新的信息,也許你感興趣。看到我的帖子下面。 – zhuguowei