Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用WE8MSWIN1252编码将Rstudio连接到oracle数据库_R_Oracle_Dplyr_Rodbc - Fatal编程技术网

使用WE8MSWIN1252编码将Rstudio连接到oracle数据库

使用WE8MSWIN1252编码将Rstudio连接到oracle数据库,r,oracle,dplyr,rodbc,R,Oracle,Dplyr,Rodbc,从RStudio连接到Oracle数据库时,我遇到编码错误的问题。我尝试了RODBC和ODBC软件包 使用sqlQuery()或通过dplyr挪威字母(Æ、Ø和Å)查询数据库时,未正确显示 我已尝试将默认文本编码I RStudio设置为UTF-8,并使用UTF-8编码保存R脚本,但问题仍然存在 使用SELECT*FROM NLS_database_PARAMETERS查询数据库时,我发现该数据库具有NLS_字符集WE8MSWIN1252,因此我在连接时尝试指定此参数 con <- dbCo

从RStudio连接到Oracle数据库时,我遇到编码错误的问题。我尝试了
RODBC
ODBC
软件包

使用
sqlQuery()
或通过
dplyr
挪威字母(Æ、Ø和Å)查询数据库时,未正确显示

我已尝试将默认文本编码I RStudio设置为UTF-8,并使用UTF-8编码保存R脚本,但问题仍然存在

使用
SELECT*FROM NLS_database_PARAMETERS
查询数据库时,我发现该数据库具有
NLS_字符集WE8MSWIN1252
,因此我在连接时尝试指定此参数

con <- dbConnect(odbc::odbc(), "RStudio", uid = "user", 
                 pwd = "password", encoding = "WE8MSWIN1252") 

你知道我做错了什么吗

dbConnect中的编码参数应设置为运行R的系统使用的编码,而不是数据库中使用的编码(根据NLS_LANG系统环境变量)。因此,如果在Windows计算机上运行R/Rstudio,则“encoding=“cp1252”或“encoding=“latin1”应该可以执行此操作。但是,如果您使用的是Linux或Mac,“encoding=“UTF8”应该可以正常工作。如果这不起作用,请确保NLS_LANG设置正确


(如果使用Rstudio服务器,则必须在.Renviron文件中设置NLS_LANG,因为Rstudio服务器不会导出操作系统范围的环境变量)

名称WE8MSWIN1252是Oracle发明的。它可能与“WINDOWS-1252”或“CP1252”(我认为是相同的)相同(或类似)。是的,你是对的。它可能应该是“windows-1252”。但这仍然没有帮助,相反,我得到了以下错误:
iconv中的错误(query,to=enc):不支持从代码页1252中的“”转换为“windows 1252”
这很奇怪:您的原始版本在从编码转换时出错,这在转换为编码时出错。此外,该错误的编码拼写与您的不同。
Error in new_result(connection@ptr, statement) : 
Can't convert from WE8MSWIN1252 to UTF-8