【问题标题】:Using Japanese letters in paste function在粘贴功能中使用日文字母
【发布时间】: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 

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

【问题讨论】:

    标签: r locale paste


    【解决方案1】:

    我找到了一个适合我的解决方案。我必须更改 unicode 不兼容程序的语言才能使日语本地正常工作。

    在 Windows 8.1 上,您必须转到控制面板、时间、地区和语言、地区、管理,然后您可以相应地更改语言 - 在我的情况下为日语 - 之后重新启动您的电脑。

    如果您现在将本地设置为

    Sys.setlocale("LC_CTYPE","japanese_JAPAN")
    

    输入 paste 应该返回您所要求的内容,例如

    paste("It works", "トヨタヴィッツ", sep=" ")
    [1] "It works トヨタヴィッツ"
    

    唯一让我感到困惑的是,当我在下载后打开 Excel 文件时,日文字母以一种新的怪异方式出现。

    我尝试手动下载单词的数据并在 Excel 文件中得到相同的结果。所以我猜数据应该是正确的。不幸的是,在我更改我的 unicode 语言之前,我没有下载日文数据的 CSV 文件,看看 excel 是否也把它弄乱了。但是当我再次将我的设置恢复为德语时,下载的文件中出现了相同的字母。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多