我有一個編碼爲utf8的MySQL列。那utf8實際上並不是完整的utf8集合,而是only BMP characters only up to 3 bytes in length。我不想嘗試將utf8插入到MySQL中,只發現它不符合MySQL的參數,即utf8應該是什麼。如果在嘗試插入之前遇到MySQL的參數,有沒有辦法用Python進行測試?出於顯而易見的原因,在some_string.encode('utf-8')
上捕捉例外不夠嚴格。檢查字符串是否有效MySQL UTF8?
2
A
回答
3
>>> len(u'\uffff'.encode('utf8')) < 4 # Good; fits in utf8
True
>>> len(u'\U00010000'.encode('utf8')) < 4 # Bad; utf8mb4 only
False
>>> ord(u'\uffff') < 65536 # Good; fits in utf8
True
>>> ord(u'\U00010000') < 65536 # Bad; utf8mb4 only
False
1
要檢查一個字符串是否包含上述U + FFFF Unicode字符(並因此不能被存儲在使用「UTF8」編碼一個MySQL表),則可以使用以下正則表達式:
re.match(u"[^\u0000-\uffff]", s)
或者,是否可以升級到MySQL 5.5或更高版本,你可能要考慮將表格轉換成the utf8mb4 character set,可以存儲所有Unicode字符。
相關問題
- 1. 檢查字符串是否有效
- 2. 檢查UTF16字符串中的所有字符是否有效?
- 3. 檢查字符串是否有有效的數字
- 4. 檢查一個UTF8編碼字符串的有效性
- 5. 在Python中檢查有效的utf8字符串
- 6. 檢查字符串是否有數字
- 7. 檢查替換字符串是有效
- 8. Laravel檢查字符串是否是有效的時間戳字符串
- 9. 如何檢查查詢字符串中的ID是否有效?
- 10. 如何檢查是否字符串是有效的HTML格式
- 11. 檢查字符串是否是語法有效的句子?
- 12. 如何檢查字符串是否是有效的HTTP URL?
- 13. 檢查一個字符串是否是一個有效的URI
- 14. 函數檢查字符串是否有
- 15. 如何檢查是否字符串有
- 16. 檢查數組是否有字符串?
- 17. 檢查字符串是否有空格
- 18. 有效檢查一個字符串是否包含另一個字符串
- 19. 檢查字符串是否有效文件名
- 20. 如何檢查字符串是否有效YAML?
- 21. 檢查javascript字符串是否有效UTF-8
- 22. Jsoup檢查字符串是否有效HTML
- 23. 檢查字符串是否包含有效的Python代碼
- 24. 如何檢查給定的字符串是否有效月份?
- 25. 如何檢查json字符串是否有效?
- 26. 檢查JSONPath字符串是否在C#中有效
- 27. 正則表達式來檢查字符串是否有效XML
- 28. 正則表達式來檢查字符串是否有效
- 29. 用Jdom2檢查字符串是否有效XML
- 30. 檢查mysql連接是否有效