我想从谷歌趋势中下载日语和英语搜索词的搜索查询数据。当我仅使用英语搜索词时它完全正常,但是当我包含日语字母时它不起作用。
我的代码如下(我为此示例添加了默认关键字,以便于使用):
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
我非常感谢任何帮助!由于这是我的第一篇文章,我希望有关结构和细节的一切都没问题。
答案 0 :(得分:0)
我找到了一个适合我的解决方案。我不得不改变unicode不兼容程序的语言,以便日本本地工作正常。
在Windows 8.1上,您必须转到控制面板,时间,地区和语言,地区,管理,你可以相应地改变语言 - 在我的情况下是日语 - 之后重启你的电脑。
如果您现在将本地设置为
Sys.setlocale("LC_CTYPE","japanese_JAPAN")
输入粘贴应返回您要求的内容,例如
paste("It works", "トヨタヴィッツ", sep=" ")
[1] "It works トヨタヴィッツ"
唯一让我感到困惑的是,当我在下载后打开Excel文件时,日文字母会以新的方式出现。
我尝试手动下载单词的数据,并在Excel文件中获得相同的结果。所以我猜数据应该是正确的。不幸的是,在我改变我的unicode语言之前,我没有下载日文数据的CSV文件,看看excel是否也搞砸了。但是当我再次将设置恢复为德语时,下载的文件中出现了相同的criptic字母。