无法将希伯来语编码为 url 用于 google 地图查询
having trouble to encode hebrew into url for google maps query
我有一些 R 代码,它采用我提供给它的城市名称,然后将其输入到 Google 地图可以理解的 URL 查询类型中,然后它给了我纬度和经度坐标。我的城市名都是希伯来语!
当我在 this 站点中使用“url 编码”,然后将输出放入我的代码时,一切正常。但后来我心想 - 为什么我需要使用这个网站,因为我可以在相同的代码中用 R 对其进行编码。
所以我试过了,很明显 - URLencode
我在互联网上找到的所有软件包都对它进行编码 与我提到的网站不同。例如:
我想对希伯来城市名称进行编码:צפת
网站输出:
%D7%A6%D7%A4%D7%AA
.
来自URLencode
的输出:
%F6%F4%FA
如何获取网站使用的第一个编码?
(我试过用RCurl
和urltools
,都没有用..)
R代码是这样的(我在this网站上找到的):
getGeoCode <- function(gcStr)
{
library("RJSONIO") # Load Library
gcStr <- gsub(' ','%20',gcStr) # Encode URL Parameters
# Open Connection
connectStr <- paste('http://maps.google.com/maps/api/geocode/json?sensor=false&address=',gcStr, sep="")
con <- url(connectStr)
data.json <- fromJSON(paste(readLines(con), collapse=""))
close(con)
# Flatten the received JSON
data.json <- unlist(data.json)
lat <- data.json["results.geometry.location.lat"]
lng <- data.json["results.geometry.location.lng"]
gcodes <- c(lat, lng)
names(gcodes) <- c("Lat", "Lng")
return (gcodes)
}
我没有看到你用 URLencode()
描述的问题:
location <- "צפת"
URLencode(location)
# [1] "%D7%A6%D7%A4%D7%AA"
并使用我的 googleway
将查询打包到 Google 有效
library(googleway)
apiKey <- ""
res <- google_geocode(address = location, key = apiKey)
res$results$formatted_address
# [1] "Safed, Israel"
res$results$address_components
# [[1]]
# long_name short_name types
# 1 Safed Safed locality, political
# 2 Tzfat Tzfat administrative_area_level_2, political
# 3 North District North District administrative_area_level_1, political
# 4 Israel IL country, political
res$results$geometry$location
# lat lng
# 1 32.96465 35.496
因此,我设法找到了问题的答案 - 我不得不将语言环境更改为 "English",因为它位于 "Hebrew"。 Sys.setlocale("LC_ALL","English")
我有一些 R 代码,它采用我提供给它的城市名称,然后将其输入到 Google 地图可以理解的 URL 查询类型中,然后它给了我纬度和经度坐标。我的城市名都是希伯来语!
当我在 this 站点中使用“url 编码”,然后将输出放入我的代码时,一切正常。但后来我心想 - 为什么我需要使用这个网站,因为我可以在相同的代码中用 R 对其进行编码。
所以我试过了,很明显 - URLencode
我在互联网上找到的所有软件包都对它进行编码 与我提到的网站不同。例如:
我想对希伯来城市名称进行编码:צפת
网站输出:
%D7%A6%D7%A4%D7%AA
.来自
URLencode
的输出:%F6%F4%FA
如何获取网站使用的第一个编码?
(我试过用RCurl
和urltools
,都没有用..)
R代码是这样的(我在this网站上找到的):
getGeoCode <- function(gcStr)
{
library("RJSONIO") # Load Library
gcStr <- gsub(' ','%20',gcStr) # Encode URL Parameters
# Open Connection
connectStr <- paste('http://maps.google.com/maps/api/geocode/json?sensor=false&address=',gcStr, sep="")
con <- url(connectStr)
data.json <- fromJSON(paste(readLines(con), collapse=""))
close(con)
# Flatten the received JSON
data.json <- unlist(data.json)
lat <- data.json["results.geometry.location.lat"]
lng <- data.json["results.geometry.location.lng"]
gcodes <- c(lat, lng)
names(gcodes) <- c("Lat", "Lng")
return (gcodes)
}
我没有看到你用 URLencode()
描述的问题:
location <- "צפת"
URLencode(location)
# [1] "%D7%A6%D7%A4%D7%AA"
并使用我的 googleway
将查询打包到 Google 有效
library(googleway)
apiKey <- ""
res <- google_geocode(address = location, key = apiKey)
res$results$formatted_address
# [1] "Safed, Israel"
res$results$address_components
# [[1]]
# long_name short_name types
# 1 Safed Safed locality, political
# 2 Tzfat Tzfat administrative_area_level_2, political
# 3 North District North District administrative_area_level_1, political
# 4 Israel IL country, political
res$results$geometry$location
# lat lng
# 1 32.96465 35.496
因此,我设法找到了问题的答案 - 我不得不将语言环境更改为 "English",因为它位于 "Hebrew"。 Sys.setlocale("LC_ALL","English")