我想插入一條記錄到具有非ASCII Unicode字符的MySQL,但我在終端上不讓我輕鬆輸入非ASCII字符。如何在MySQL的SQL語法中轉義Unicode字面值?MySQL unicode literals
10
A
回答
7
參見:http://bugs.mysql.com/bug.php?id=10199 (錯誤#10199:「允許Unicode轉義序列字符串文字。」) 這個請求已經被「打開」自2005年以來
從 http://eng.kaching.com/2009/10/mysql-unicode-escape-sequences.html 雖然你可以看到下面的例子,它實際上似乎工作,但要求您知道實際的逐字節UTF8編碼:
「您還可以使用可變長度的UTF-8表示法(方便,例如,從utf-8 URL編碼值,如%E2%80%98)。「
mysql> select _utf8 x'E28098';
+---+
| ‘ |
+---+
0
此存儲的函數提供缺少的功能MySQL是(顯然)中,用一種方法來把一個文字代碼點爲字符,而不必已經知道UTF-8編碼。
如果VARCHAR(1)
似乎很奇怪,因爲在MySQL UTF8字符可以達到3個字節長,記住大小VARCHAR
是字符,不字節。該函數從輸入值中返回一個單一的UTF-8編碼字符。
對於十六進制文字,前置0x
。
DELIMITER $$
DROP FUNCTION IF EXISTS `utf8_char` $$
CREATE FUNCTION `utf8_char`(v smallint unsigned) RETURNS VARCHAR(1) CHARSET utf8
NO SQL
DETERMINISTIC
BEGIN
-- http://stackoverflow.com/questions/3632410/mysql-unicode-literals/30675371#30675371
RETURN CHAR(CASE
WHEN v <= 0x7F THEN v
WHEN v <= 0x7FF THEN 0xC080 | ((v >> 6) << 8) | (v & 0x3F)
WHEN v <= 0xFFFF THEN 0xE08080 | (((v >> 12) & 0x0F) << 16) | (((v >> 6) & 0x3F) << 8) | (v & 0x3F)
ELSE NULL END);
END $$
DELIMITER ;
輸出示例:
mysql> select utf8_char(8592) AS 'leftwards_arrow';
+-----------------+
| leftwards_arrow |
+-----------------+
| ← |
+-----------------+
1 row in set (0.00 sec)
mysql> select utf8_char(0x2192) AS 'rightwards_arrow_hex';
+----------------------+
| rightwards_arrow_hex |
+----------------------+
| → |
+----------------------+
1 row in set (0.00 sec)
相關問題
- 1. JavaScript Object Literals&Array Literals
- 2. NSNumber Literals
- 3. long integer literals
- 4. C/C++ Literals
- 5. .appendTo和HTML literals
- 6. Javascript Object Literals和jQuery
- 7. mysql unicode問題
- 8. Mysql ASCII vs Unicode
- 9. VB.NET,MySQL和Unicode
- 10. php mysql和unicode
- 11. php mysql flex unicode
- 12. mysql asp.net c#unicode
- 13. 作爲'literals'的變量
- 14. TypeScript:Tagged Template Literals顯示錯誤
- 15. Object Literals - Vs - 構造函數
- 16. Windows Phone 7 - XAML DateTime literals
- 17. 關於數字Literals詞彙
- 18. MYSQL CURSOR使用Unicode
- 19. mysql和Unicode字符
- 20. MySQL的Unicode數據
- 21. 蟒MySQL的 - 的unicode
- 22. json_encode和mysql unicode的問題
- 23. Unicode電子表格到MySQL
- 24. python將unicode存儲到mysql
- 25. Django和MySQL的Unicode錯誤
- 26. MySQL:查詢unicode實體
- 27. MySQL UTF/Unicode遷移技巧
- 28. Unicode問題Django-Python-URLLIB-MySQL
- 29. Python與MySql unicode問題
- 30. Python MySQL的Unicode錯誤
我得到一點點超越激怒驅動通過向下選民誰,不加評論,反對票答案是顯然是正確和隨機愚蠢顯然工作。如果您沒有足夠的技巧來理解答案並解釋您的反對意見,請至少停止展示答案。 – 2016-04-19 09:27:20
工作正常,謝謝 – 2017-01-26 06:51:38