我有一个编码为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连接是否有效