gpt4 book ai didi

PostgreSQL 的 rodbc 字符编码错误

转载 作者:行者123 更新时间:2023-11-29 11:21:43 26 4
gpt4 key购买 nike

在使用 RODBC 从 R 连接到 GreenPlum PostgreSQL 数据库时,我遇到了一个以前从未遇到过的新错误。我在使用 EMACS/ESS 和 RStudio 时遇到了错误,并且 RODBC 调用与过去一样有效。

library(RODBC)
gp <- odbcConnect("greenplum", believeNRows = FALSE)
data <- sqlQuery(gp, "select * from mytable")

> data
[1] "22P05 7 ERROR: character 0xc280 of encoding \"UTF8\" has no equivalent in "WIN1252\";\nError while executing the query"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select * from mytable'"

编辑:刚刚尝试查询另一个表并确实得到了结果。所以我猜这不是 RODBC 问题而是 PostgreSQL 表编码问题。

R version 2.13.0 (2011-04-13)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

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

other attached packages:
[1] RODBC_1.3-2
>

最佳答案

首先,问题的出现是因为 R 试图转换为支持 UTF8 的 Windows 语言环境。不幸的是,Brian Ripley 多次报告说 Windows 没有 UTF8 语言环境。通过花费数小时搜索网络、StackOverflow、Microsoft 等,我得出的结论是 Microsoft 讨厌 UTF-8 Windows 将不支持 UTF8。

因此,如果有任何解决方案,我不确定是否有简单的解决方案。我能推荐的最好的方法是在服务器端包装某种转换,如果可以的话考虑过滤数据,或者在合适的情况下尝试不同的语言(例如中文、日语、韩语)。

如果您决定包装一个转换器,unicode.org recommends this ICU toolkit .

关于PostgreSQL 的 rodbc 字符编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7167298/

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