2010-03-24 62 views
3

说我有这段代码:如何在Google地图中标记标题中转义字符?

var marker = new google.maps.Marker({ 
    position: location, 
    title: 'Búfals', 
    map: map 
}); 

这将创建一个标记如预期,但如果我将鼠标悬停它,我没有看到“B ú FALS”
因为我希望(而不是我看到的HTML代码)。

这没有任何区别:

var marker = new google.maps.Marker({ 
    position: location, 
    title: unescape('Búfals'), 
    map: map 
}); 

任何想法?

谢谢。

回答

2

这可能是矫枉过正,但它的工作原理:

function decode(txt){ 
    var sp = document.createElement('span'); 
    sp.innerHTML = txt; 
    return sp.innerHTML; 
} 

decode('Búfals') 
0

您可能需要使用:

var marker = new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    title: unescape('B%FAfals') 
}); 
+0

感谢丹尼尔。是的,这是有效的,但是代码'%FA'是什么? – Anthony 2010-03-24 10:12:22

+0

@Anthony:它被称为百分比编码(http://en.wikipedia.org/wiki/Percent-encoding)。这是使用此编码的ASCII字符的图表:http://i-technica.com/whitestuff/urlencodechart.html。 JavaScript'unescape()'函数返回指定编码值的ASCII字符串。 – 2010-03-24 10:42:25

+0

我明白了。谢谢丹尼尔。事情是我不能真正使用这个解决方案,因为我使用的字符串是html编码(不是百分比编码)。至少我明白为什么逃脱无效。 – Anthony 2010-03-24 12:53:01

1

什么丹尼尔建议类似,您可以尝试使用你想显示字符的Unicode值,你的情况这将是\u09fa

+0

您和本页是我对此问题的解决方案。 http://www.utf8-chartable.de/ – 2013-10-12 21:21:03