gpt4 book ai didi

mysql - R控制台中的错误字符编码

转载 作者:可可西里 更新时间:2023-11-01 08:30:02 25 4
gpt4 key购买 nike

我在从 MySQL 数据库中获取数据后遇到编码问题。请看附件代码:

mydb = dbConnect(MySQL(), user='root', password='', dbname='', host='localhost')
dbGetQuery(mydb, "SET NAMES 'utf8'")
rs = dbSendQuery(mydb, "SELECT body_prepared FROM articles")
data = fetch(rs, n=-1)

print(data)
internetovĂ˝ televĂ­zor mĂşdry obyÄŤajnĂ˝

使用命令 print(data) 后,我应该看到 internetový televízor múdry obyčajný(这是斯洛伐克语),但我看到 internetovĂ˝ televĂzor mĂşdry obyÄŤajnĂ

我尝试通过 Rgui 和 Rstudio 运行 R,但这没有任何效果,结果在 Rgui 和 Rstudio 中都是一样的。我尝试使用 enc2utf8(data[[1]]) 或通过 Sys.setlocale("LC_CTYPE", "en_EN.UTF-8") 更改各种类型的编码,但这些命令没有帮助。我想,Mysql 方面有问题,但我的专栏设置了正确的 utf-8 编码。

不知道哪里出了问题。这让我很生气。你能帮忙解决这个问题吗?我将非常感激。

有关完整信息,这是我的 sessionInfo:

> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=Slovak_Slovakia.1250 LC_CTYPE=Slovak_Slovakia.1250
[3] LC_MONETARY=Slovak_Slovakia.1250 LC_NUMERIC=C
[5] LC_TIME=Slovak_Slovakia.1250

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] RMySQL_0.10.2 DBI_0.3.1

loaded via a namespace (and not attached):
[1] tools_3.1.2

更新

我将 dbGetQuery(mydb, "SET NAMES 'utf8'") 重写为 dbGetQuery(mydb, "SET NAMES 'cp1250'") 突然它显示了正确的结果.

最佳答案

数据存储不正确。可能您的文本是用 utf8 字节编码的,但是当您执行 INSERT 时,SET NAMES 是 latin1 或 cp1250,并且该列的 CHARACTER SET 是 latin1 或 cp1250。这些都是正确的吗?如果是这样,我们可以继续修复数据。如果没有,请提供详细信息。

另外,提供 SELECT col, HEX(col) ... 来验证存储了哪些字节。和 SHOW CREATE TABLE 以查看列的详细信息。

关于mysql - R控制台中的错误字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29440733/

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