向mysql(utf8)插入4字节unicode时出现警告
如果它存在于一个句子中,我想跳过4字节的unicode字
这样它就可以成功插入到mysql中。 :d
例如。 '\ xf0 \ x9f \ x8e \ x81'是礼物图标。
句子是'这很棒。'
它可以像这样处理。 “这太棒了。”
非常感谢!!!!!!
答案 0 :(得分:1)
假设您最初使用Unicode格式的字符串,您可以通过执行以下操作从Basic-Multilingual-Plane字符外部删除字符:
if len(u'\U00010000') == 1:
s = re.sub(u'[\U00010000-\U001FFFFF]', u'', s)
else:
s = re.sub(u'[\uD800-\uDFFF]', u'', s)
(这两个分支是满足Python'窄版本'所必需的,就像Python 2的标准Windows版本一样,其中字符串使用UTF-16代理代码单元存储非BMP字符。如果您使用的是最近的Python 3然后你可以跳过这个,因为所有版本现在都是“宽”的。)
但无论如何,使用utf8mb4
编码来配置表来存储数据要好得多,utf8
编码代表“真正的”UTF-8,包括四字节字符,而不是MySQL&#39; s有限SI <- c("HYUNDAI CRETA", "HYUNDAI VERNA"). The object SI is actually a Selectize Input.
mydb <- dbConnect(MySQL(), user = "root", password = "1234", dbname = "db1", host = "localhost")
a <- paste0("select * from autotable where SUBBRAND like ",SI)
dbGetQuery(mydb,a)
on.exit(dbDisconnect(mydb))
。