【问题标题】:Encoding in R: How to convert this string to UTF-8?R 中的编码:如何将此字符串转换为 UTF-8?
【发布时间】:2013-03-18 16:50:04
【问题描述】:

我正在使用 R 从旧的名声数据库中读取数据。这通常工作得很好,但是在阅读描述时我得到了意想不到的编码。例如:

a <- "\U3e34653c"
# is supposed to be 
"ä"

我尝试iconv我自己解决这个问题,但尽管尝试了许多可能性,但我无法以正确的方式显示它。我的语言环境:en_US.UTF-8。有没有办法替换(子)这样的字符串?

【问题讨论】:

  • 我遇到了类似的问题,并成功地首先转换为“latin1”。可能值得一试
  • 这似乎是由您的数据库引起的,而不是 R。字符 ä 在 Unicode 中是 0x000000e4,而不是 0x3e34653c(未定义)。

标签: r encoding utf-8


【解决方案1】:

尝试使用不同的编码字符串打开文件?正如里卡多建议的那样,也许是拉丁语?如果不是,也许还有其他异国风味:

f <- file( "myfile.db" , encoding = "Latin-1" )
dat <- readLines( f )

你能链接到一些数据吗?

【讨论】:

  • 我知道它不是正确的 Unicode 字符。问题是我只是得到了我从数据库读取时发布的角色(不管它是什么?)。目前我正试图弄清楚我可以做什么而不是替换正则表达式。
【解决方案2】:

从 SQL Server 提取数据时(通过 ODBC 和 RODBC 包),我遇到了同样的问题。我通过更改 ODBC 驱动程序上的设置以将所有字符串视为 unicode 来解决它。

更具体地说,我正在为 SQL Server 使用 Actual Technologies ODBC 驱动程序,并且在“高级语言设置”下可以指定“将文本类型视为 Unicode”,并将“多字节文本编码”选项设置为 UTF- 8.

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2018-05-24
    • 2011-12-08
    • 2011-05-20
    • 2014-05-02
    • 1970-01-01
    • 2013-07-22
    • 2013-07-01
    相关资源
    最近更新 更多