gedit bug 和 Unix-&-Linux Q/A href 之间有什么联系?

gedit bug 和 Unix-&-Linux Q/A href 之间有什么联系?

在回答一个Unix-&-Linux 问题,我观察到 Gedit 和另外两个编辑器 Leafpad 和 Medit(我总共测试了 12 个编辑器)表现出了某个错误。事实证明,该错误在 Canonical 的启动板中被称为 Bug #332321搜索(和替换)将 ss 作为 ß

该错误的行为是find ß同时匹配ßand ss...(不好,特别是如果您进行全部替换)。

然后我注意到 StackExchange 软件为了创建问题的 href 链接,已将问题的标题从 转换How to bind “ß” to Meta-s?how-to-bind-ss-to-meta-s

ß那么两个完全不相关的环境却以相似的方式对待……ß和之间这种奇怪的吸引力是什么呢ss? ……还有其他这样的“关系”吗?

答案1

ßss实际上是(德语)的连字。任何使用表将 Unicode 或其他扩展字母字符转换为 URL 等“安全”字符的人都可能会将其转换为ss.

对 URL 执行此操作是很正常的。例如,我说土耳其语,其中有英语中找不到的字母,例如ö ü ı â ğ ç ş İ。这些字符在 URL、特殊表单字段等中使用并不总是安全的。我们用类似的字符代替它们,例如o u i a g c s I。通常,这是通过视觉相似性而不是声音来完成的,但ß听觉相似性的情况ss使其成为常见的转换。

这会造成数据的净丢失,但作为 URL 或其他特殊字段的安全表示,它可以工作,然后在网站本身上您可以使用真实的字符。

为什么gedit要进行这种转换超出了我的范围。这是一个错误。

答案2

案件正常化。 <用 Gedit 检查> 是的。

当您进行不区分大小写的搜索时,GEdit(以及我认为其他的)会规范化大小写,这会导致许多字符等效性崩溃。例如,ßss都大写SS。复合字符如éé(第一个是 U+00E9 LATIN SMALL LETTER E AND ACUTE,第二个是 U+0301 COMBINING ACUTE ACCENT 后跟 U+0065 LATIN SMALL LETTER E)也被认为是等效的。

如果您进行区分大小写的搜索,这些字符序列都被认为是不同的。

相关内容