我正在使用ASP.NET Core开发Web应用程序,该应用程序使用其API在Google Maps上显示路线。其中一种方法是使用编码折线数据,它从我们的后端服务器获取。问题是当我通过这样的值时:
{konItyiI??mLxJaRhPwY}C{[cUc\ua@qYw`@uYe_@{VgZqTwTiHfE_N~`@oOvg@iVtg@qVld@{Vv`@oV|_@cDbXtDz\jDr\~Hj[|GfXjDr[pLtZdItb@pIha@`BpQOdH??
然后Javascript抛出Uncaught SyntaxError: Invalid Unicode escape sequence
并且地图永远不会显示。这是因为有一个" \ u"在折线数据中。它适用于不包含此数据的其他折线。
有没有办法使用Javascript忽略Unicode转义序列?到目前为止,我发现的所有内容只涉及使字符串HTML安全,这不是练习的目的。
更新
我无法使用:
var coords = "@Models.Polyline".replace("\\", "");
因为声明字符串时会引发异常。
但是,我可以使用:
var coords = "@Models.Polyline.Replace("\\", "")";
使用C#Replace()方法代替JavaScript replace()方法。
这意味着当JavaScript尝试将其解析为字符串文字时,数据不会导致异常,因为在JS看到之前已删除了有问题的反斜杠。
但这会导致问题。遗留下来的折线数据缺少原始数据,因为地图上显示的路线几乎完全不同,特别是在很小的距离内。
答案 0 :(得分:0)
尝试以下:
第1步:
//在使用之前将折线数据放入字符串变量
string bfesc =" {konItyiI ?? mLxJaRhPwY} C {[cUc \ ua @ qYw @uYe_@{VgZqTwTiHfE_N~
@ oOvg @ iVtg @ qVld @ {Vv @oV|_@cDbXtDz\jDr\~Hj[|GfXjDr[pLtZdItb@pIha@
BpQOdH ??"
第2步: //删除\ u
nestr = bfesc.replace(" \\ u","");
现在使用nestr
希望它有所帮助!!干杯:)