You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps中转义字符&#39无法正常显示问题求助

解决Google Maps XML生成中撇号(')显示异常的问题

嘿,我太懂这种卡壳的感觉了——好不容易跟着教程走,结果撇号变成&#39;没法正常显示,确实闹心。你的parseToXML函数只处理了<和>,但XML规范里需要转义的特殊字符不止这两个,尤其是撇号和引号,这就是问题所在。

修正后的完整转义函数

把你的parseToXML函数替换成下面这个版本,它会完整处理所有XML特殊字符,同时保证撇号能被Google Maps正确解析:

<?php
// 转义XML特殊字符的函数
function parseToXML($htmlStr) {
    // 先替换&,因为所有转义序列都以&开头,必须最先处理
    $xmlStr = str_replace('&', '&amp;', $htmlStr);
    // 处理小于号、大于号
    $xmlStr = str_replace('<', '&lt;', $xmlStr);
    $xmlStr = str_replace('>', '&gt;', $xmlStr);
    // 处理单引号(撇号)和双引号
    $xmlStr = str_replace("'", '&apos;', $xmlStr);
    $xmlStr = str_replace('"', '&quot;', $xmlStr);
    return $xmlStr;
}

// 别忘了设置正确的XML响应头,确保解析正确
header('Content-Type: application/xml; charset=utf-8');

// 示例:从数据库取出数据后处理
// 假设$row是数据库查询结果的一行
echo '<marker name="' . parseToXML($row['name']) . '" address="' . parseToXML($row['address']) . '" />';
?>

关键说明

  1. 先替换&:这是重中之重!如果先替换其他字符,比如<变成&lt;后,再替换&的话,会把&lt;里的&又转成&amp;,导致出现&amp;lt;这种错误的转义序列。
  2. 单引号转义为&apos;:XML里单引号的标准转义符是&apos;,Google Maps的API能正确识别这个转义,不会显示成&#39;(虽然&#39;也是合法的XML实体,但有些解析器可能处理方式不同)。
  3. 设置Content-Type头:必须在输出XML之前设置这个头,告诉浏览器和Google Maps这是XML格式的内容,避免编码或解析错误。

这样修改后,你数据库里的撇号就能在地图上正常显示了,其他特殊字符也不会出问题~

内容的提问来源于stack exchange,提问作者Talsma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:03:52