因此我的模板中插入了一些unicode,导致我的iframe src失败。
字符串在javascript变量中显示为http://sand-dynamic.adpinr.com/social_stream/p_unit/1204042
,但变为
http://sand-dynamic.adpinr.com%e2%80%ac/social_stream/p_unit/1204042
显然,但我不确定为什么。我尝试在变量上执行此操作:
obj.URL = unescape(JSON.parse('"' + TL.getURL() + '/social_stream/p_unit/' + obj.id + '"');
但它似乎没有帮助。我的模板只是称之为
<iframe frameborder="0" width="<%= width %>" height="<%= height %>" marginheight="0" marginwidth="0" target="_blank" scrolling="no" src="<%= URL %>"></iframe>
关于如何摆脱额外的unicode的任何想法?它阻止我进入浏览器中的URL,而只是谷歌搜索它。我宁愿让它动态删除任何额外的unicode,因为我不知道unicode是如何在那里实现的。
答案 0 :(得分:0)
%e2%80%ac
是U+202C。不知何故,这个角色进入了你的URL变量。该字符是不可见的,这就是为什么在打印出变量值时看不到它,但在字符串被URL编码时看到它。您需要编辑字符串以删除该字符。我无法提供更多信息,因为我不知道该值的来源。
如果你真的想删除非ASCII范围字符,你总是可以这样做:
var url = ...
var strippedURL = '';
for (var i = 0, l = url.length; i < l; i++){
if (url.charCodeAt(i) < 256) strippedURL += url[i];
}
return strippedURL;
这不是解决这个问题的好方法。如果你不知道char来自哪里,那么这只是你代码中其他地方需要修复的bug的标志。