在粘贴功能中使用日文字母
Using Japanese letters in paste function
我想从 google 趋势下载日语和英语搜索词的搜索查询数据。当我只使用英文搜索词时它工作得很好,但是当我包含日文字母时它就不起作用了。
我的代码如下(我为了这个例子加入了 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
非常感谢您的帮助!由于这是我第一次 post 我希望关于结构和细节的一切都很好。
我找到了一个适合我的解决方案。我不得不更改与 unicode 不兼容的程序的语言,以便日文本地能够正常工作。
在 Windows 8.1 上,您必须转到控制面板、时间、区域和语言、区域、管理,然后您可以在那里相应地更改语言 - 在我的情况下是日语 - 然后重新启动您的电脑。
如果您现在将本地设置为
Sys.setlocale("LC_CTYPE","japanese_JAPAN")
输入 paste 应该 return 您要求的内容,例如
paste("It works", "トヨタヴィッツ", sep=" ")
[1] "It works トヨタヴィッツ"
唯一让我感到困惑的是,当我在下载后打开 Excel 文件时,日文字母以一种新的乱码方式出现。
我尝试手动下载单词的数据并在 Excel 文件中得到相同的结果。所以我猜数据应该是正确的。不幸的是,在我更改我的 unicode 语言以查看 excel 是否也把它搞砸之前,我没有下载日语数据的 CSV 文件。但是当我再次将我的设置恢复为德语时,下载的文件中出现了相同的字母。
我想从 google 趋势下载日语和英语搜索词的搜索查询数据。当我只使用英文搜索词时它工作得很好,但是当我包含日文字母时它就不起作用了。
我的代码如下(我为了这个例子加入了 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
非常感谢您的帮助!由于这是我第一次 post 我希望关于结构和细节的一切都很好。
我找到了一个适合我的解决方案。我不得不更改与 unicode 不兼容的程序的语言,以便日文本地能够正常工作。
在 Windows 8.1 上,您必须转到控制面板、时间、区域和语言、区域、管理,然后您可以在那里相应地更改语言 - 在我的情况下是日语 - 然后重新启动您的电脑。
如果您现在将本地设置为
Sys.setlocale("LC_CTYPE","japanese_JAPAN")
输入 paste 应该 return 您要求的内容,例如
paste("It works", "トヨタヴィッツ", sep=" ")
[1] "It works トヨタヴィッツ"
唯一让我感到困惑的是,当我在下载后打开 Excel 文件时,日文字母以一种新的乱码方式出现。
我尝试手动下载单词的数据并在 Excel 文件中得到相同的结果。所以我猜数据应该是正确的。不幸的是,在我更改我的 unicode 语言以查看 excel 是否也把它搞砸之前,我没有下载日语数据的 CSV 文件。但是当我再次将我的设置恢复为德语时,下载的文件中出现了相同的字母。