V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX  ›  程序员

你知道 "你" 不是 "你" 吗?

  •  8
     
  •   iugo ·
    iugo · 2017-01-20 11:58:44 +08:00 · 10728 次点击
    这是一个创建于 2857 天前的主题,其中的信息可能已经有所发展或是发生改变。
    "你" 的 Unicode code point 是十进制的 194564.
    "你" 的 Unicode code point 是十进制的 20320.

    前者属于 cjk compatibility ideograph.
    后者属于 cjk unified ideograph.

    我们一般使用后者, 但前者也存在, (根据维基百科)前者存在的意义在于 "字源分离原则".

    P.S. 我对编码的认识还真是浅. 有待学习和提高.
    第 1 条附言  ·  2017-01-20 14:53:15 +08:00
    不同的字体有不同的渲染逻辑, 有些字体比如 "Hiragino Sans GB" (Mac OS X 10.11 自带) 会将两种编码渲染为同一个字体样式, 所以看起来两个字是一样的.

    分享一个文档链接: CJK Compatibility Ideographs Supplement (The Unicode Standard, Version 9.0) http://unicode.org/charts/PDF/U2F800.pdf
    83 条回复    2022-07-18 23:17:31 +08:00
    jtam
        1
    jtam  
       2017-01-20 12:06:09 +08:00
    owtf........
    qq316107934
        2
    qq316107934  
       2017-01-20 12:08:42 +08:00 via Android   ❤️ 15
    靠这个是不是可以注册一批超高仿 ID 呢?
    SuperMild
        3
    SuperMild  
       2017-01-20 12:11:37 +08:00
    还真是

    "你".codePointAt(0)
    194564
    "你".codePointAt(0)
    20320
    ob
        4
    ob  
       2017-01-20 12:14:27 +08:00 via Android
    @qq316107934 注册起来,哈哈
    allenhu
        5
    allenhu  
       2017-01-20 12:16:42 +08:00 via Android
    关键看字体
    Kei
        6
    Kei  
       2017-01-20 12:18:55 +08:00   ❤️ 3
    "你" == "你"
    false

    感觉三观被震撼了
    zwzmzd
        7
    zwzmzd  
       2017-01-20 12:31:43 +08:00 via Android
    发现有的手机这两个字显示有区别,有的没区别
    Umix
        8
    Umix  
       2017-01-20 12:34:23 +08:00 via Android
    但是在日亚可以用中文输入法输入日本汉字,这就厉害了
    t123yh
        9
    t123yh  
       2017-01-20 12:35:29 +08:00 via Android   ❤️ 5
    Android 7 表示有区别,一个顶上是一横,一个是横撇
    viator42
        10
    viator42  
       2017-01-20 12:37:10 +08:00 via Android   ❤️ 17
    看标题还以为要讨论什么哲学问题
    zhujinliang
        11
    zhujinliang  
       2017-01-20 12:37:25 +08:00   ❤️ 2
    我以为楼主要说 “死的那是你,你是你哥哥“
    hinate
        12
    hinate  
       2017-01-20 12:38:56 +08:00 via iPhone
    这不是两个字吗?
    FrankFang128
        13
    FrankFang128  
       2017-01-20 12:42:31 +08:00
    日文字和中文字吧?
    LCS
        14
    LCS  
       2017-01-20 12:45:23 +08:00   ❤️ 17
    cjyang1128
        15
    cjyang1128  
       2017-01-20 12:56:21 +08:00
    第一个你要怎么打出来?
    giuem
        16
    giuem  
       2017-01-20 12:58:59 +08:00 via iPhone   ❤️ 1
    手机上看还是有区别的

    https://ooo.0o0.ooo/2017/01/20/588198e4cb233.png
    jimmy2010
        17
    jimmy2010  
       2017-01-20 13:01:58 +08:00
    你 百度为您找到相关结果约 57 个
    你 百度为您找到相关结果约 100,000,000 个
    easing
        18
    easing  
       2017-01-20 13:03:41 +08:00
    手机上能看到差别,电脑上看了半天不知道 LZ 在说什么。。
    wly19960911
        19
    wly19960911  
       2017-01-20 13:04:36 +08:00
    这两个字可以拿去搜索下,反馈的结果是前者都是以没有撇的(在字典网站上的结果),但是都没有解释,后者就是正常的你(都看着完形崩坏了
    Kokororin
        20
    Kokororin  
       2017-01-20 13:07:51 +08:00
    Yvette
        21
    Yvette  
       2017-01-20 13:08:56 +08:00
    我不认识「你」怎么写了
    Lelouchcr
        22
    Lelouchcr  
       2017-01-20 13:17:44 +08:00   ❤️ 5
    ```
    列 列
    女 女
    老 老
    里 里
    ```

    我也踩过坑, unicode 的区块是 84308130 - 8430A330
    imn1
        23
    imn1  
       2017-01-20 13:22:01 +08:00
    怪不得那么多部门都要你自证身份, 2333



    你 你
    侮 侮
    內 内
    抱 抱
    ……
    这些字多的是,在 Unicode 的命名是
    CJK Compatibility Ideographs Supplement
    Range: 2F800 – 2FA1F
    The Unicode Standard 3.1

    这个看电脑字体用的是什么,像#12 用的字体可能就能看清两个字写法是不同的
    loading
        24
    loading  
       2017-01-20 13:25:33 +08:00 via Android
    昨天刚看了一次 utf8,cjk 字体有一些是这样的。
    chocotan
        25
    chocotan  
       2017-01-20 13:26:44 +08:00
    完蛋了,我也不认识你怎么写了。。
    irainsoft
        26
    irainsoft  
       2017-01-20 13:31:49 +08:00
    Windows+Chrome 感觉标题里两个字略有不同一直盯着看 现在已经不认识这个字了
    xrxsh
        27
    xrxsh  
       2017-01-20 13:32:16 +08:00
    @chocotan 看了一会已经完全不知道“你”是什么字了
    arischow
        28
    arischow  
       2017-01-20 13:35:52 +08:00
    21grams
        29
    21grams  
       2017-01-20 13:39:10 +08:00
    这有什么稀奇, unicode 里一样的字多如牛毛。
    lybtongji
        30
    lybtongji  
       2017-01-20 14:05:09 +08:00
    看来有个好字体很重要
    codehz
        31
    codehz  
       2017-01-20 14:11:11 +08:00
    正确的渲染应该会映射到同一个字形上去的。。。上面字体显示不一致的估计是 fallback 的问题,直接按照区间进行划分了
    caoz
        32
    caoz  
       2017-01-20 14:33:13 +08:00
    貌似发现一个 bug, Firefox on Mac, 在浏览器中显示没问题, 闲着没事复制到 Python 中想试一下, 结果...



    复制后字竟然变了... 换用其他浏览器复制字不会变, 你们可以试下. 应该不是扩展的问题, 新建了个 Profile 也是这样...
    cppgohan
        33
    cppgohan  
       2017-01-20 14:34:05 +08:00
    有一些简繁体, 字模差异非常小, 但是其实是两个字
    iugo
        34
    iugo  
    OP
       2017-01-20 14:36:06 +08:00
    @21grams 因为我之前对 Unicode 的编码规范认识比较少, 所以刚开始看到 你 使用了两种编码有些好奇: 同一个字为何要使用两种或以上编码?

    所以更深入了解了一下常用的 CJK Unified Ideographs 和作为补充的 CJK Compatibility Ideographs Supplement. 然后去 unicode.org 找了一些资料进一步了解, 比如 http://unicode.org/charts/PDF/U2F800.pdf

    分享一下, 或许对一些朋友有帮助.
    Akarin
        35
    Akarin  
       2017-01-20 14:41:44 +08:00
    ![screen shot 2017-01-20 at 14 40 21]( https://cloud.githubusercontent.com/assets/7829098/22138993/7734d4a8-df1e-11e6-86b0-b7782d1e7230.png)

    看多了这个字,会突然不认识的。
    SkYouth
        36
    SkYouth  
       2017-01-20 14:58:16 +08:00
    假的我
    SourceMan
        37
    SourceMan  
       2017-01-20 15:00:37 +08:00

    少了一个勾
    Sylv
        38
    Sylv  
       2017-01-20 15:02:01 +08:00   ❤️ 2
    Unicode 里很多长一样的,再举个例子( Python 2 代码):

    é 的 Unicode 是 u'\xe9':
    >>> print u'\xe9'
    é

    但其实也可以表示成 u'\u0065\u0301':
    >>> print u'\u0065\u0301'
    é

    后者相当于字母 e (u'\u0065') + 音符 ́ (u'\u0301'):
    >>> print u'\u0065'
    e
    >>> print u'\u0301'
    ́

    不过两者其实在 Unicode 中是等价的,可以将后者正规化为前者:
    >>> import unicodedata
    >>> unicodedata.normalize('NFC', u'\u0065\u0301')
    u'\xe9'


    扩展阅读:
    https://zh.wikipedia.org/wiki/Unicode 等價性
    Sylv
        39
    Sylv  
       2017-01-20 15:07:24 +08:00
    @Sylv 呃, V2EX 不支持链接中有中文,补个编码后的链接:
    https://zh.wikipedia.org/zh-cn/Unicode%E7%AD%89%E4%BB%B7%E6%80%A7
    xycool
        40
    xycool  
       2017-01-20 15:18:39 +08:00
    xycool
        41
    xycool  
       2017-01-20 15:19:34 +08:00
    bayernmunchen
        42
    bayernmunchen  
       2017-01-20 15:20:39 +08:00 via Android
    百度 id 可以注册😂😂
    xycool
        43
    xycool  
       2017-01-20 15:20:48 +08:00
    这样?
    ragnaroks
        44
    ragnaroks  
       2017-01-20 15:24:26 +08:00
    'a'=='а'
    iugo
        46
    iugo  
    OP
       2017-01-20 15:40:15 +08:00
    tewilove
        47
    tewilove  
       2017-01-20 15:44:16 +08:00
    所以参与制定编码的中国人去哪了?
    hythyt9898
        48
    hythyt9898  
       2017-01-20 15:53:30 +08:00
    好吧,我这默认字体一看就完全不同,进来看看大家
    tairan2006
        49
    tairan2006  
       2017-01-20 15:55:33 +08:00
    你的名字
    Twinkle
        50
    Twinkle  
       2017-01-20 16:30:17 +08:00
    在 console 里就看出区别了
    815lbh
        51
    815lbh  
       2017-01-20 16:32:41 +08:00
    还有囗和口
    Khlieb
        52
    Khlieb  
       2017-01-20 16:43:25 +08:00
    维基百科上说这个字是为了跟 CNS 11643-1992 编码兼容才收进去的
    mxalbert1996
        53
    mxalbert1996  
       2017-01-20 16:59:57 +08:00   ❤️ 1
    日文汉字标准里所有的「尔」都是写作「尓」的,所以这个字应该就是「你」对应的日文汉字,虽然现在日语里已经不用这个字了。
    但是 Unicode 的编码还是有一定的偶然性的,比如「尔你称弥」这四个字中前两个字的不同写法有另一个编码「尓你」,而后两个字就没有。

    @Sylv 你说的这种情况跟楼主说的看起来有点像,其实是两回事。
    squid157
        54
    squid157  
       2017-01-20 18:47:34 +08:00 via iPhone
    谁做个针对汉字的 Unicode Normalization 估计会很好啊
    woyaojizhu8
        55
    woyaojizhu8  
       2017-01-20 18:58:12 +08:00
    @imn1 所以说应该如何设置字体,让这些字能显示出来而非显示个 unicode 编码或方框呢?
    ik
        56
    ik  
       2017-01-20 19:05:39 +08:00 via iPhone
    口 囗 这两字不放一块也不好分
    Dvel
        57
    Dvel  
       2017-01-20 19:10:00 +08:00

    有意思啊
    padeoe
        58
    padeoe  
       2017-01-20 22:52:42 +08:00
    搭车发一把我收集的英文版的'a'不是'a'系列 https://github.com/padeoe/Word-Trick
    ovear
        59
    ovear  
       2017-01-20 23:07:47 +08:00
    SoulGem
        60
    SoulGem  
       2017-01-20 23:26:26 +08:00
    你们好(??????
    xmpx310
        61
    xmpx310  
       2017-01-21 00:07:05 +08:00
    发现一个码表
    派 海 流 浩 浸 涅
    随意复制几个字符让你们见识见识
    [来自中日韓相容表意文字補充[CJK Compatibility Ideographs Supplement]]( http://jicheng.tw/hanzi/unicode.html?s=2F800&e=2FA1D)
    ZRS
        62
    ZRS  
       2017-01-21 02:50:37 +08:00
    完了,看多了完型解体了,现在已经不认得你了。
    xspoco
        63
    xspoco  
       2017-01-21 04:43:56 +08:00


    我可能用的是假系统。
    xspoco
        64
    xspoco  
       2017-01-21 04:45:37 +08:00


    贴图不成功,尴尬。
    microchang
        65
    microchang  
       2017-01-21 06:16:53 +08:00 via Android   ❤️ 1
    ![]( ) 讲道理,我真不知道楼主在说啥。。。直到我打开电脑。。
    ynyounuo
        66
    ynyounuo  
       2017-01-21 07:01:43 +08:00   ❤️ 2
    这种字儿太多了

    凉凉
    目⽬
    日⽇
    儿⼉
    毛⽑
    不不
    ⿅鹿鹿
    ⼥女女
    ⼒力力
    ⾥里里
    ⽴立立
    ⾏行行

    CJK Compatibility Ideographs & Supplements
    F900-FAFF
    2F800-2FA1F
    存在很多 confusables
    2F00-2FDF 又有很多
    归为 Kangxi Radicals

    更多可以从这里看到
    http://unicode.org/cldr/utility/confusables.jsp

    之前 @Sylv 做了识别 Unicode 的 Popclip 小插件,不过倒是不能识别 CJK Compatibility Ideographs Supplements
    ffts
        67
    ffts  
       2017-01-21 10:30:43 +08:00   ❤️ 1
    对于很多程序员来说
    “;”和“;”也许更让人吃惊...


    分号在 Unicode 字符是 U+003B “;”。
    全形分号是 U+FF1B :
    台港澳和日本标准为置中,如“;”,直排时亦然
    中国大陆标准为靠左下,如“;”;直排时则靠右上,新版 Unicode 增加配合中国大陆写法之“垂直分号( PRESENTATION FORM FOR VERTICAL SEMICOLON ), U+FE14 ” “︔”[3],以兼容 GB 18030
    另有“小分号( SMALL SEMICOLON )”“﹔”在 U+FE54 ,源自 CNS11643 / Big5 。
    另有相似字符在 Unicode U+037E “;”,是希腊文问号;而希腊文分号是 U+0387 “·”。
    lawfun
        68
    lawfun  
       2017-01-21 10:54:26 +08:00
    @SuperMild 你好,可以问一下你是怎么操作的么。我把两个 你都复制到 intellij 中 打印出来的都是 20320 。
    RobertYang
        69
    RobertYang  
       2017-01-21 11:10:57 +08:00
    在手机上看显示不同 23 不过还真是第一次知道
    Patrick95
        70
    Patrick95  
       2017-01-21 12:48:48 +08:00
    学到了,哈哈。
    kn007
        71
    kn007  
       2017-01-21 13:31:10 +08:00
    。。。。。。。。。。。。。。。。
    真是学习了,居然不知道还能这么好玩
    DesignerSkyline
        72
    DesignerSkyline  
       2017-01-21 13:34:07 +08:00 via iPad
    iPad 上很清楚地看到两字有不同
    hst001
        73
    hst001  
       2017-01-21 13:42:14 +08:00 via Android
    两个字明显的不一样大家看不出来了,好像没什么好惊奇的
    jacy
        74
    jacy  
       2017-01-21 14:06:08 +08:00
    把这些字都收集起来,对付关键词过滤应该挺不错
    cst4you
        75
    cst4you  
       2017-01-21 15:48:09 +08:00
    cst4you
        76
    cst4you  
       2017-01-21 15:49:20 +08:00
    卧槽图床插件挂了...这什么鬼地址
    tabris17
        77
    tabris17  
       2017-01-21 15:55:11 +08:00
    google 能认出第一个“你”,百度不行。真垃圾
    riccar
        78
    riccar  
       2017-01-21 15:55:57 +08:00
    @giuem 求客户端名称
    giuem
        79
    giuem  
       2017-01-21 16:35:36 +08:00 via iPhone   ❤️ 1
    @riccar VeXplore
    SuperMild
        80
    SuperMild  
       2017-01-22 10:15:20 +08:00
    @lawfun 两个你字不同的,在有些系统下可以直接看到字型不同,可能你复制过程中出了问题,可能自动转换了什么的。如果是在 windows 下,你试试复制粘贴到 word 里面,可以直接看到字型不同。
    skylancer
        81
    skylancer  
       2017-01-22 11:16:54 +08:00
    我去.. 我回到手机上才发现完全不一样的字
    jiangbingo
        82
    jiangbingo  
       2017-01-22 16:33:21 +08:00
    你知道你不是你,所以你才是你。
    from 《遥远的救世主》
    zhangbohun
        83
    zhangbohun  
       2022-07-18 23:17:31 +08:00
    今天有人在微博热搜活用了这个知识点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1584 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:11 · PVG 01:11 · LAX 09:11 · JFK 12:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.