R urlquery in Japanese。编码问题?

时间:2013-10-29 11:23:55

标签: r encoding utf-8

我正在尝试阅读以下包含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

似乎也不起作用。 有人可以提供任何建议吗?

1 个答案:

答案 0 :(得分:0)

我认为你需要包含&#34; http://&#34;您的代码与

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

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