MySQL会抛出错误“无法运行语句:无效的utf8mb4字符串”

问题描述 投票:0回答:1

使用R将波兰语字符写入MySQL的最佳方法是什么?

我试图将R data.frame发送到本地MySQL数据库。 data.frame包含波兰语字符,例如ł。

mydb = dbConnect(MySQL(), user='root', password='1234', dbname='semstorm1', host='localhost')    
dbWriteTable(mydb,"dane3", dane2, append = T, row.names = F)

我收到错误

无法运行语句:无效的utf8mb4字符串

这可能会有帮助:enter image description here

r rmysql utf8mb4
1个回答
0
投票

您需要在几个地方建立所使用的编码。看来您正在使用MySQL 8.0。

客户端和表的字符集不必相同。 MySQL应该能够在cp852和utf8mb4(又名UTF-8)之间转换西里尔字母。

stoke-l在cp852中为十六进制88,在utf8mb4中为十六进制CB86。

如果客户端具有“ 88”,但安装程序表明客户端正在使用utf8mb4,则将出现该错误消息。

这里是我对R的粗略注释,假设您要utf8 / utf8mb4;如果客户端确实在使用,请更改为cp952,例如“ 88”。

R / RStudio

工具->全局选项->代码->保存并放入UTF-8rs

在我从中调用程序包的主脚本顶部的[options(encoding =“ UTF-8”)似乎解决了程序包代码中包含非ASCII字符的问题。

read_chunk(lines = readLines(“ TestSpanishText.R”,编码=“ UTF-8”))(还有file())

Character Encoding

另请参阅Trouble with UTF-8 characters; what I see is not what I stored中的“最佳实践”以获取需要一致设置的清单。

从长远来看,建议仅使用utf8mb4,而过多的其他编码仅用于初始导入旧文本。

© www.soinside.com 2019 - 2024. All rights reserved.