问题标签 [combining-marks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
55543 浏览

unicode - 这些 Unicode 组合字符是怎么回事,我们如何过滤它们?

กิิิิิิิิิิิิิิิิิิิิก้้็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิก้้ก็กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้กิิิิิิิิิิิิิิิิิิิิก้้้้้้้้้้้้้้้้้้้้ก็ก็็็็็็็็็็็็็็็็็็็็ก็ก็็็็็็็็็็็็็็็็็็็็กิิิิิิิิิิิิิิิิิิิิกิิิิิิิิิิิิิิิิิิิิกิิิิิิิิิิิิิิิิิิิิก้้ก้้้้้้้้้้้้้้้้้้้้ก็้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้</p> </p>

这些最近出现在 Facebook 评论部分。

我们如何对其进行消毒?

0 投票
3 回答
2477 浏览

unicode - Unicode 中的“组合字符”和“字素扩展器”有什么区别?

Unicode 中的“组合字符”</a> 和“字形扩展器”</a> 有什么区别?

据我所知,它们似乎在做同样的事情——尽管字素扩展器的集合大于组合字符的集合。我显然在这里遗漏了一些东西。为什么要区分?


Unicode 标准,第 3 章,D52

  • 组合字符:具有组合标记(M)的一般类别的字符。
  • 组合字符由具有间距组合标记 (Mc)、非间距标记 (Mn) 和封闭标记 (Me) 的常规类别值的所有字符组成。
  • 所有具有非零规范组合类的字符都是组合字符,但情况并非如此:存在具有零规范组合类的组合字符。
  • 私有字符 (Co) 是否解释为组合字符由实现决定。
  • 这些字符通常不会单独使用,除非它们被描述。它们包括诸如口音、变音符号、希伯来语点、阿拉伯元音符号和印度语 matras 等字符。
  • 组合字符的图形定位取决于最后一个前面的基本字符,除非它们被一个既不是组合字符也不是零宽度连接符或零宽度非连接符的字符分隔。据说组合字符适用于该基本字符。
  • 可能没有这样的基本字符,例如当组合字符位于文本开头或跟随控制或格式字符时 - 例如,回车符、制表符或左右标记。在这种情况下,组合字符称为孤立组合字符。
  • 有孤立的组合字符或当一个进程无法进行图形组合时,进程可能会呈现一个没有图形组合的组合字符;也就是说,它可以将其呈现为就好像它是一个基本字符一样。
  • 组合字符的代表图像在代码图中用虚线圆圈表示。当与前面的基本字符以图形组合形式呈现时,该基本字符旨在出现在虚线圆圈所占据的位置。

Unicode 标准,第 3 章,D59

  • Grapheme 扩展器:具有Grapheme_Extend属性的字符。
  • 字形扩展字符由所有非间距标记、零宽度连接符、零宽度非连接符、U+FF9E、U+FF9F 和少量间距标记组成。
  • 字素扩展器主要可以被认为是一种非间距图形标记,应用于另一个间距字符的上方或下方。零宽度连接器和零宽度非连接器被正式定义为字素扩展器,因此它们的存在不会破坏其他字素扩展器的序列。
  • 少数具有 Grapheme_Extend 属性的间距标记都是双部分组合标记的第二部分。
  • 根据定义,具有 Grapheme_Extend 属性的字符集和具有 Grapheme_Base 属性的字符集是不相交的。
0 投票
1 回答
948 浏览

python - python isalpha 不能正确处理 unicode 组合标记?

我遇到了奇怪的乌克兰语Кири́лл。我将其转换为 unicode 并使用 isalpha 对其进行测试,结果返回 False。我环顾四周,发现这个词包含一个名为“组合重音”的字符。所以字母и́实际上是两个字符的组合:и和́ 。 如果我理解正确,组合标记(如这个重音)只是为了修改其他字符。所以 isalpha 应该将此字符串识别为一个单词。我错了吗?有什么方法可以得到正确的结果吗?utf8 中有问题的词:

字='\xd0\x9a\xd0\xb8\xd1\x80\xd0\xb8\xcc\x81\xd0\xbb\xd0\xbb'

0 投票
5 回答
9003 浏览

javascript - 如何阻止 Z͎̠͗ͣḁ̵͙̑l͖͙̫̲̉̃ͦ̾͊ͬ̀g͔̤̞͓̐̓̒̽o͓̳͇̔ͥ 文本?

我已经阅读了有关Zalgo 文本的工作原理的信息,并且我希望了解聊天或论坛软件如何防止这种烦恼。更准确地说,完整的 Unicode 组合字符集是什么,需要:

a) 要么被剥夺,假设聊天参与者只使用不需要组合标记的语言(即你可以用组合标记写“未婚夫”,但如果你坚持这样做,你自己会有点 Zalgo'ed所以); 或者,

b) 减少到最多 8 个连续字符(实际语言中遇到的最大值)?

编辑:与此同时,我发现了一个完全不同的措辞问题(“如何防止......变音符号? ”),这与这个问题基本相同。我使它的标题更明确,以便其他人也能找到它。

0 投票
2 回答
415 浏览

unicode - Unicode中的字符组合需要什么?

当单个代码点映射到符号就足够时,在 Unicode 中具有符号的组合字符表示的实际应用是什么?

它给我们带来了什么编程/非编程优势?

0 投票
1 回答
576 浏览

c# - 如何计算与 StringInfo 组合的字符序列

我原以为这就是 LengthInTextElements 属性的用途。MSDN说这个属性是:

此 StringInfo 对象中的基本字符、代理对和组合字符序列的数量。

所以看起来它应该将组合序列视为单个字符。但要么它不起作用,要么我从根本上误解了一些东西。这个糟糕的测试程序...

生成此输出...

字符串:`e
长度:2
文本元素:2

我非常希望将组合序列“\u0301\u0065”算作单个字符。这可以用 StringInfo 完成吗?


好吧,我发现我做错了什么,这有点尴尬。我正在颠倒字符和变音符号的顺序。因此,进行以下如此微小的更改可以解决问题:

所以......这只是正确编码我的测试数据的问题。

0 投票
4 回答
186 浏览

html - 突出显示组合字符

我正在尝试构建一个小系统,突出显示与常规字符不同颜色的字符组合。举个例子:

我希望三个组合字符(重音重音、波浪号覆盖和下面的 x)以红色突出显示,但如果在原始文本中保持精确的位置。问题是,当我在 HTML 元素中包装组合字符时,它不再“附加”到基本字符,而是与文本的其余部分内联。

有没有办法用 HTML / CSS 来完成这个?

注意:我在这里这里查看了答案,但它们似乎都只是“几何地”解决问题——即它们突出显示某个区域内的角色部分。这个问题专门关于突出组合字符的“印刷”方面。

0 投票
1 回答
2774 浏览

java - 检测Java中的任何组合字符

我正在寻找一种方法来检测java字符串中的字符是否“是组合字符”。例如,

表示组合高棉元音符号。我已经尝试过"\\p{InCombiningDiacriticalMarks}" 正则表达式,但它似乎不适用于这些特定的组合字符。或者即使有所有 unicode 组合字符块的完整列表,我也可以为它们制作一个正则表达式?

0 投票
1 回答
214 浏览

php - 显示不需要字符的缅甸语正则表达式

看到bar္foo里面了吗?我不知道为什么我看到这个垃圾角色?如何删除它?但是如果我hello world用作输入字符串,那么它会显示预期的结果:

0 投票
1 回答
21 浏览

batch-file - 我需要有关 if 和组合变量的批处理帮助

我正在批量制作地牢爬行引擎。我制作了一个易于使用的地图编辑器,但需要有关特定 IF 语句的帮助。

加载地图时出现的是这样的:

[你的名字] 生命值:300/300

你现在在 room3.3。tile3.3

我需要知道当标题中存在另一个变量时如何搜索一个变量!我可能说得非常错误,但“%tile%%unipos%”是我能想到的最好的。它是一个...占位符,如果你愿意的话。