Javascript 从facebook粘贴标签时无法识别的字符

Javascript 从facebook粘贴标签时无法识别的字符,javascript,jquery,Javascript,Jquery,我在javascript中使用以下代码通过ajax将注释发送到JSP文件: comment=encodeURIComponent(comment); alert(comment); $('mydiv').load('/SendComment.jsp?productId='+productId+'&comment='+comment); 我使用encodeURIComponent,因为我的评论可以包含多行、单引号、双引号等,它们在load调用中按原样发送时会打断URL 当用户从faceb

我在javascript中使用以下代码通过ajax将注释发送到JSP文件:

comment=encodeURIComponent(comment);
alert(comment);
$('mydiv').load('/SendComment.jsp?productId='+productId+'&comment='+comment);
我使用
encodeURIComponent
,因为我的评论可以包含多行、单引号、双引号等,它们在
load
调用中按原样发送时会打断URL

当用户从facebook粘贴标签时(例如:#埃及),编码器组件将其转换为

%23%E2%80%8EEgypt%E2%80%AC 
当我稍后打印该评论时,它是:

‎Egypt‬
当我手动键入编码为
%23埃及的“#埃及”时,不会出现此问题


如何解决此问题?

看起来您的SendComment.jsp脚本不知道如何将其视为UTF-8。不,这些字符是在进行ajax调用之前插入的。我已经提到了粘贴标签和手动写入“#埃及”之间的区别。E2808E编码的字符是Unicode 200E,从左到右的标记字符。显然,该字符存在于从中复制“#埃及”的源材料中,或者用户代理正在将该字符前置到复制缓冲区。这些是UTF中的字符,有助于浏览器了解文本的方向
E2 80 8E
是表示从左到右标记(‎)的UTF,而
E2 80 AC
表示弹出方向格式(即结束双向字符串)@yoavmatchulsky是的,我漏了几个位:)关键是复制粘贴的源中有字符,可能是从右到左的上下文(如阿拉伯语)。