如何在Javascript / C#中忽略Unicode转义序列?

时间:2017-05-03 10:46:36

标签: javascript c# unicode

我正在使用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看到之前已删除了有问题的反斜杠。

但这会导致问题。遗留下来的折线数据缺少原始数据,因为地图上显示的路线几乎完全不同,特别是在很小的距离内。

1 个答案:

答案 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

希望它有所帮助!!干杯:)