在粘贴功能中使用日文字母

时间:2015-08-31 16:05:18

标签: r locale paste

我想从谷歌趋势中下载日语和英语搜索词的搜索查询数据。当我仅使用英语搜索词时它完全正常,但是当我包含日语字母时它不起作用。

我的代码如下(我为此示例添加了默认关键字,以便于使用):

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 

我非常感谢任何帮助!由于这是我的第一篇文章,我希望有关结构和细节的一切都没问题。

1 个答案:

答案 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字母。