【发布时间】:2015-11-25 17:37:20
【问题描述】:
我想从谷歌趋势中下载日文和英文搜索词的搜索查询数据。当我只使用英文搜索词时,它工作得很好,但一旦我包含日文字母,它就不起作用了。
我的代码如下(我在这个例子中包含了 default 关键字以便于使用):
URL_GT=function(keyword="Toyota Aygo %2B Toyota Yaris %2B Toyota Vitz %2B
トヨタヴィッツ", year=2010, month=1, length=68){
start="http://www.google.com/trends/trendsReport?hl=en-US&q="
end="&cmpt=q&content=1&export=1"
date=""
queries=keyword[1]
if(length(keyword)>1) {
for(i in 2:length(keyword)){
queries=paste(queries, "%2C ", keyword[i], sep="")
}
}
#Dates
if(!is.na(year)){
date="&date="
date=paste(date, month, "%2F", year, " ", month+length-1, "m", sep="")
}
URL=paste(start, queries, date, end, sep="")
browseURL(URL)
}
当我查看在浏览器中调用的下载 URL 时,我可以看到日文字母已转换为一些 %、数字和字母,但它们根本不应该改变。
当我使用时
Sys.setlocale("LC_CTYPE","japanese_JAPAN")
我得到以下粘贴结果
paste("トヨタヴィッツ","Toyota Vitz", sep = "")
[1] "ƒgƒˆƒ^ƒ”ƒBƒbƒcToyota Vitz"
我认为这很好地表明 paste() 函数似乎没有按预期工作。
使用
Sys.setlocale("LC_CTYPE","german_GERMANY")
我收到以下错误消息
unexpected INCOMPLETE_STRING
1: URL_GT=function(keyword="Toyota Aygo %2B Toyota Yaris %2B Toyota Vitz %2B ?
表示 R 无法解释日文字母。
我尝试寻找解决方案,但只能找到导致我更改语言环境的提示。如上所述,到目前为止,这对我不起作用。我也找到了这个tip,但我得到了与该问题的询问者相同的错误 - 即
Warning message: In Sys.setlocale("LC_CTYPE", "UTF-8") : OS reports request
to set locale to "UTF-8" cannot be honored
我非常感谢任何帮助!由于这是我的第一篇文章,我希望关于结构和细节的一切都好。
【问题讨论】: