javascript – 奇怪的口音长度为“é”字符串返回2

前端之家收集整理的这篇文章主要介绍了javascript – 奇怪的口音长度为“é”字符串返回2前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个奇怪的问题,我无法解释.我试图操纵一个带有口音的字符串为“é”.该字符串来自输入文件类型的图像的名称.

我不能理解的是为什么当我为强调字符解析时,我的字符串被分为两个字符.以下是一个更好理解的例子:

我的é分为两个字,如e& .

"é".length
=> 2

utf8有可能涉及吗?

我真的不明白什么!

解决方法

它们被称为 Combining Diacritical Marks.它们是Unicode的“一块”…一些可以在任何角色“链接”的组合变音符号.显然,在这种情况下,字符串的长度是2(因为有e和’.预先配置的字符如àéèìòù已经被保留兼容,但现在任何字符都可以被重音:-)显然,99%不知道,99.9%的程序支持非常糟糕.我相当肯定他们可以用作某个地方的攻击矢量(但我不是偏执狂:-))

我甚至补充说,即使Skeet在2009年也不知道他们如何工作:http://codeblog.jonskeet.uk/2009/11/02/omg-ponies-aka-humanity-epic-fail/

You see,I couldn’t remember whether combining characters came before or after base characters

猜你在找的JavaScript相关文章