特殊字符与RODBC
在数据库中,我存储了包含特殊字符(如“§”)的字符串。 使用命令特殊字符与RODBC,r,special-characters,rodbc,R,Special Characters,Rodbc,在数据库中,我存储了包含特殊字符(如“§”)的字符串。 使用命令 sqlQuery() 从RODBC包中,将“§”翻译为“?”。这也适用于诸如“'”之类的字符,因为它可以在法语单词中找到 当然,我不能用查询后的一个特殊字符替换每个“?”。有人对这个问题有想法吗?我在Windows7下工作 根据请求,输出sessionInfo() 如果您看到一个问题,即在R中使用sqlSave()发送到MYSQL,而不是所有数据流都通过MYSQL,那么很可能是因为特殊字符。关键是要确保字符排序规则在两者中设置
sqlQuery()
从RODBC包中,将“§”翻译为“?”。这也适用于诸如“'”之类的字符,因为它可以在法语单词中找到
当然,我不能用查询后的一个特殊字符替换每个“?”。有人对这个问题有想法吗?我在Windows7下工作
根据请求,输出sessionInfo()
如果您看到一个问题,即在R中使用sqlSave()发送到MYSQL,而不是所有数据流都通过MYSQL,那么很可能是因为特殊字符。关键是要确保字符排序规则在两者中设置为相同..我发现latin1最有效 我认为您需要将
odbcDriverConnect()
中的DBMSencoding
设置为数据库的编码格式。我想“UTF-8”
值得一试。谢谢,我会试试看!设置编码有什么乐趣吗?我很快会告诉你-谢谢@SimonO101我试图在odbcConnect中设置正确的DBMSencoding,我尝试了:odbcConnect(mydb,uid=myuid,pwd=mypwd,DBMSencoding=“UTF-8”),但这并没有解决问题。我不知道如何使用ODBCDriverConnection,但应该传递odbcConnect的附加参数。
R version 2.14.1 (2011-12-22)
Platform: x86_64-pc-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] timeDate_2160.97 gridExtra_0.9.1 reshape2_1.2.2 RODBC_1.3-6 ggplot2_0.9.3.1 plyr_1.8
[7] Runiversal_1.0.2
loaded via a namespace (and not attached):
[1] colorspace_1.2-1 dichromat_2.0-0 digest_0.6.3 gtable_0.1.2 labeling_0.1 MASS_7.3-21
[7] munsell_0.4 proto_0.3-10 RColorBrewer_1.0-5 scales_0.2.3 stringr_0.6.2 tools_2.14.1