【问题标题】:R urlquery in Japanese. Encoding issue?日文的R urlquery。编码问题?
【发布时间】:2013-10-29 11:23:54
【问题描述】:

我正在尝试在 R 中读取以下包含日文和英文文本的 CSV 文件,构建一个 URL 并检索结果。

数据是这样的;

ID,AutoG1,AutoG2
8756,Pocket Card,ポケットカード
4574,Takara Standard,タカラスタンダード

我尝试运行的代码如下;

>library(XML)
>library(RCurl)
>
>data<-read.csv("test.csv")
>url <- paste("suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=",data[1,"AutoG2"],sep="")
>url
"suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=ポケットカード"
>result <-getURL(URLencode(url),.opts=opts)
>doc <- xmlRoot(xmlTreeParse(result))
>length(zzdoc)
0

结果应该类似于this,这表明实际上有 10 个结果。

我认为解决这个问题的一个线索是了解 url 变量是如何在内部表示的。如果我直接使用 URL 字符串;

>url2 <- "suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=ポケットカード"
>zz <-getURL(URLencode(url2),.opts=opts)
>zzdoc <- xmlRoot(xmlTreeParse(zz))
>length(zzdoc)
10

我得到了想要的结果,但我需要使用类似于第一个代码片段的方式以编程方式获得这些结果。 url 和 url2 看起来很相似,但在内部它们是不同的,我认为这是由于编码。

>url==url2
FALSE
>Encoding(url)
"unknown"
>Encoding(url2)
"UTF-8"

我试图强制编码;

> Encoding(url)<-"UTF-8"
> url
"suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=\u0083|\u0083P\u0083b\u0083g\u0083J\u0081[\u0083h"
> zz <-getURL(URLencode(url),.opts=opts)
Warning message:
In strsplit(URL, "") : input string 1 is invalid UTF-8

这似乎也不起作用。 谁能给点建议?

【问题讨论】:

    标签: r encoding utf-8


    【解决方案1】:

    我认为您需要包含您的代码使用的“http://”

    url <- paste("http://suggestqueries.google.com/complete/search?output=toolbar&hl=jp&qu=",data[1,"AutoG2"],sep="")
    

    作为参考,Nippon 包非常适合切换编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多