开放街道地图地址解码

问题描述:

我正在使用Nominatim反向地理编码服务从经度和纬度获取地址。然后,将结果存储在Mysql数据库中。 编码是如下小提琴:开放街道地图地址解码

http://jsfiddle.net/GWL7A/171/

返回的地址是在当地语言中,如在例子是在中国。 而存储的数据无法读取为:

"麒麟山新æ‘, 惠æ¥åŽ¿, 广东, 中åŽäººæ°‘共和国/China" 
  1. 这有可能使地址英语返回。
  2. 如果这是不可能的,如何将数据存储到数据库中,以便在检索并在Web UI中显示时返回中文单词?它不能仅限于中文,因为它可能是阿富汗,泰国,越南或其他国家的地址。

谢谢。

+4

那么,小提琴演示了我'中国广东惠来县麒麟山新村',这个英文超过50%。 :-) – wallyk

+0

你用什么语言将结果存储在数据库中?假设小提琴是客户端JavaScript,那么您是将结果发送到服务器,还是使用Node.js或其他?无论哪种方式,这几乎肯定是某种字符编码/解释问题。 – AKX

+0

@wallyk,但我将纯粹用英文或以其他方式显示“*广东惠来县麒麟山新村”。现在它只是在我的网页UI中显示“éº'麟山æ-°æ',æ¿æŽæ¿,å¹ä¸œ,ä¸åŽäººæ°'å...±å'Œå> 1/2/China”将地址插入数据库 –

object in question尚未国际化的OSM,所以nominatim只能给你它的原名(这是中文)。 如果你确实需要拉丁脚本中的“in English”这个名字,那么你可能必须自己做一些转录。我想可以在这里找到一些han-pinyin转录库...

btw:确保在将字符串添加到数据库时使用正确的字符集。 OSM正在使用utf-8。

+0

感谢您的回答。如果我想把中文地址保存到MySQL数据库中,你知道该怎么做吗? 我使用字符集utf8_general_ci。它只是陷入一片混乱,无法阅读。 –

+0

对不起,但我没有太多的PHP ......我可以告诉你的是,你的工具链中可能存在一些字符集转换问题。 – tyr