【问题标题】:Special characters and RODBC特殊字符和 RODBC
【发布时间】:2013-09-05 13:50:52
【问题描述】:

在数据库中,我存储了包含特殊字符(例如“§”)的字符串。 使用命令

sqlQuery()

RODBC 包中的“§”被翻译成“?”。诸如“'”之类的字符也是如此,因为它可以在法语单词中找到。

当然我不能替换每个“?”通过查询后的特殊字符之一。有人对这个问题有想法吗?我在 Windows 7 下工作。

根据要求输出sessionInfo()

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    

【问题讨论】:

  • 我认为您需要将odbcDriverConnect() 中的DBMSencoding 设置为数据库编码的任何内容。我想"UTF-8" 值得一开始。
  • 谢谢,我试试看!
  • 设置编码有什么乐趣吗?
  • 我很快就会告诉你——谢谢!
  • @SimonO101 我尝试在 odbcConnect 中正确设置 DBMSencoding 我尝试过:odbcConnect(mydb, uid=myuid,pwd=mypwd,DBMSencoding="UTF-8") 但这并没有解决问题。我不知道如何使用 odbcDriverConnec,但应该传递 odbcConnect 的其他参数。

标签: r special-characters rodbc


【解决方案1】:

如果您看到在 R 中使用 sqlSave() 发送到 MYSQL 的问题,但并非所有数据都流过,这可能是因为特殊字符。关键是要确保两者的字符排序规则都设置为相同。我发现 latin1 效果最好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 2012-09-24
    • 2011-05-17
    • 2016-12-08
    • 2011-05-03
    • 2019-09-05
    • 2017-02-27
    相关资源
    最近更新 更多