Validation 符号未正确显示

Validation 符号未正确显示,validation,browser,unicode,text-rendering,zalgo,Validation,Browser,Unicode,Text Rendering,Zalgo,该符号为:1515778上下下下下下下下下下上下下下下下下下上下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下上下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下1618 8

该符号为:1515778上下下下下下下下下下上下下下下下下下上下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下上下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下下1618 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 16 16 16 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 1618 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 8 8 8 8 8 8 16 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 16 16 16 8 8 8 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 8 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 16 16 16 16 16 16 16 16ْْْْْْْْْْْْْْْْْْْ

这个符号有什么特别之处?它是从哪里来的


如何根据这些输入进行验证?或者更好的是,如何正确显示这些符号(即不让它们与其他元素重叠)?

我刚刚将符号复制到SQL Server和Visual Studio,发现符号已转换为

因此,它看起来像是浏览器无法识别的
ْ
(看起来像)符号的组合

符号是

同样,IE也能正确解释相同的符号

因此,看起来有些浏览器无法识别符号

编辑:

要验证此类输入,通常可以使用Javascript或PHP等语言进行某种排序验证(如重新输入用户仅输入ASCII字符),通过这些语言可以限制用户根据自己的选择输入字符

甚至更好的是,如何正确显示这些符号


如果浏览器无法将符号呈现为您所显示的符号,那么作为一种解决方法,您可以对这些字符进行一些限制,例如使用
溢出:auto
将它们放在div中,但这不是一个好的解决方案。更好的方法是使用验证脚本。

奇怪的是,在屏幕上,您只能看到一个字符,后面跟着一条不知从何处画出来的线


但当使用chrome进行检查时,实际上是第一个字符具有
Unicode 1572
,然后是161个字符,这条线具有
Unicode 1618
然后是Unicode(或ASCII码)32作为空间。

因为它似乎不像我对其他人所想的那么琐碎,所以我的答案如下

这就是所谓的

给你一个例子,你可以直接写一个
a
,或者作为
结果为“a”

现在,你可以把这里的标志搞砸了:“a∗∗∗∗∗”,我在这里输入:
ä̈̈̈̈̈̈

为了保护自己免受这种“unicode”攻击,您可以限制允许紧跟在后面的unicode字符的数量。我不能给你一个确切的例子,因为你的标签没有给出关于服务器端语言的提示。如果你有一个简单的英文网站,你可以尝试将其限制为ascii字符。然而,我不建议这样做,因为届时我将不被允许用我的名字签名:-)

我会限制Unicode字符的数量。这可能是用正则表达式完成的

如果您只是想避免Unicode字符从其容器中“断开”,请尝试使用
style=“overflow:auto”
,这似乎会限制其呈现方式

$ echo -n ؤْْ | recode utf8..dump
UCS2   Nem   Descripción

0624   wH    arabic letter waw with hamza above
0652   0+    arabic sukun
0652   0+    arabic sukun
0652   0+    arabic sukun
[...lots of repeated lines...]
0652   0+    arabic sukun

这是阿拉伯文的waw(w),有很多变音符号:1个hamza(上面用hamza预合成为waw字符)和大约160个重复的sukun变音符号。

我不确定用Javascript解析符号是否有用,但这里有一个脚本可以做到这一点:

var text = 'your symbol goes here',
regex1 = /(?:[\u0624|\u0652])/g,
result;
// note that the symbol comprises of the letter and the repeated diacritics;
// to remove the symbol completely: 
result = text.replace( regex1, '');
下面是一种查看符号中包含哪些类型的字符以及这些字符如何使其看起来非常奇怪的方法(它使用javascript正则表达式):

您可能希望使用
meta-tag:charset=UTF-8
在所有浏览器上正确呈现整个符号,而不是仅在IE上尝试。我想说,您的符号看起来奇怪的唯一原因是因为变音符号(重复的字符)使用不正确,否则,包含的字符都是合法的。如果这个符号只是有人为了同样的效果而滥用表单输入或其他东西,我不会感到惊讶

该符号使用纯阿拉伯语字符,您只需了解unicode中该语言字符的范围如下(javascript正则表达式),可从以下网址获得:

/[\u0600-\u06FF]/g

/[\u0600-\u06FF]/g.exec( ‘text here’ );

// it's advised that you wrap the Arabic words in spans to control and show them correctly, do the following:
'text includes arabic words'.replace(/(?:([\u0600-\u06FF]+))/g, '<span class="xyz">$1</span>';
我希望这有点帮助。
祝你好运。

@DrixsonOseña:-我想这就是OP的要求!它就在我的屏幕上,因为它的怪异行为,9gag上的人已经使用这个符号有一段时间了。我试图在谷歌上找到更多关于它的信息,但谷歌的回复是400个错误。所以我不得不把这个问题贴在这里。但是谷歌回答了400个错误——这本身就有点有趣!我想知道为什么会发生这样的事。1618 8 8月月15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 1618 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 16 16 16 16 16 16 16 16 16 16 16 16 16 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8相关:我之前没有意识到在其他浏览器中显示的方式有所不同。如果Rahul Tripathi是对的,并且这个特殊字符是阿拉伯语字符(我没有投资检查这个特殊字符),我可以想象一些浏览器/操作系统没有安装对阿拉伯语字符的支持,所以我猜这是一个错误或者缺少支持。因为我还有一些问题,另外,由于一些成员说这个问题与编程无关,我不得不更新问题并取消选中您的答案。很抱歉给您带来的不便,我应该在开始时就包括所有内容。@chaosifier现在您在我的回答中有了解决方法:)@chaosifier我不使用Facebook,所以不知道。然而,编辑一二三" (我想这是123)给你一个提示,把它放在一个div中,用
overflow:auto
@rekire,效果很好。我想你可以把它包括在你的答案中。我已经回滚了你对问题的更改,让其他人看到这个问题。非常感谢
.xyz { unicode-bidi: bidi-override; }