Unicode不可见字符

  • 场景复现

在访问 https://dotnet.microsoft.com/zh-cn/apps/aspnet地址时 突然出现
https://dotnet.microsoft.com/zh-cn/apps/aspnet%E2%80%8C%E2%80%8C

在这里插入图片描述

但是正常来看,这个地址后面是没有%E2%80%8C%E2%80%8C的,粘贴到idea里发现了url地址后面还拼接了2个unicode字符。

    @Test
    public void testUnicodeChar() throws Exception {
        String str = "https://dotnet.microsoft.com/zh-cn/apps/aspnet\u200C\u200C‌‌";
    }
  • 不可见字符

‌‌‌‌\u200C\u200C是什么字符

“\u200C\u200C” 中的 “\u200C” 是 Unicode 编码中的零宽度非连接符(Zero Width Non-Joiner,ZWNJ),下面从特点和作用方面具体介绍:
字符特点
不可见性:零宽度非连接符是一种不可见字符,它在文本显示中不占据实际的宽度和空间,不会像普通字符那样直接显示出形状或符号。
零宽度:其主要特点就是宽度为零,不会对文本的排版宽度产生影响,仅在特定的文本处理或显示情境中发挥作用。
主要作用
防止字符连接:在一些语言文字系统中,某些字符在特定情况下可能会自动连接或合并显示。零宽度非连接符可以用来阻止这种自动连接行为,确保字符按照原本的形式显示。比如在阿拉伯语等从右向左书写的语言中,它可以防止特定字符组合在一起形成不期望的连写形式。
文本处理和排版控制:在文本编辑、排版软件或网页设计等场景中,零宽度非连接符可用于精确控制文本的显示和布局。例如,在需要对特定字符或字符组进行特殊处理,使其不与周围字符产生默认的连接或合并效果时,就可以使用零宽度非连接符。
标记特定文本区域:可以作为一种特殊的标记,用于在文本中划分或标识特定的区域或字符组合,以便后续的文本处理、分析或样式应用。比如在进行文本搜索、替换或格式设置时,可利用零宽度非连接符来标记需要特殊处理的文本部分。
“\u200C\u200C” 就是两个连续的零宽度非连接符,可能用于更复杂的文本控制或标记需求,比如强调某个区域内的字符都不应发生连接,或者在特定的文本处理流程中作为一种特殊的分隔标记等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值