gpt4 book ai didi

mysql - 在 R 中将 ISO8859 数据写入 MySQL(错误 :"could not run statement: Invalid utf8 character string")

转载 作者:行者123 更新时间:2023-11-30 23:45:25 24 4
gpt4 key购买 nike

我需要将 SAS 传输文件 (.xpt) 导入 MySQL。因为我没有 SAS,所以我试过了a) 首先在 R 中导入 .xptb) 然后使用 RMySQL 库中的 dbWriteTable 从数据框创建一个表。

问题在于数据框包含 ISO8859 字符,而 MySQL(或 dbWriteTable?)需要 UTF-8。(详细说明:精确度数字符,在ISO8859中为B0,在UTF8中为C2B0)我收到以下输出:

dbWriteTable(con,"new_table",mydata,overwrite=T)
.local(conn, statement, ...) 中的 Fehler:
无法运行语句:无效的 utf8 字符串:'Hallo'
>

所以我尝试使用 iconv(mydata,“ISO8859-1”,“UTF8”)之类的 iconv 转换数据,但它似乎只能反过来工作(它正确地将 UTF8 转换为 ISO8859,但反过来却不行).

然后我尝试了很多

SET character_set_client = latin1;
SET character_set_results = latin1;
SET character_set_connection = latin1;

但没有任何运气。

任何帮助将不胜感激

最佳答案

我找到了一个我想分享的解决方法:

由于 iconv 仅适用于 UTF8->ISO8859,这没有用,但您可以:

  • 使用 fileEncoding="utf8"将数据帧写入临时文件
  • 读一遍
  • 然后使用 dbWriteTable

    write.table(mydata,file="tmp.txt", fileEncoding ="utf8")
    mydata_utf8 <- read.table(file="tmp.txt",encoding="utf8") dbWriteTable(con,"new_table",mydata_utf8,overwrite=T)

关于mysql - 在 R 中将 ISO8859 数据写入 MySQL(错误 :"could not run statement: Invalid utf8 character string"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41475451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com