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

2017 年 1 月 20 日
 iugo
"你" 的 Unicode code point 是十进制的 194564.
"你" 的 Unicode code point 是十进制的 20320.

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

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

P.S. 我对编码的认识还真是浅. 有待学习和提高.
12027 次点击
所在节点    程序员
83 条回复
Yvette
2017 年 1 月 20 日
我不认识「你」怎么写了
Lelouchcr
2017 年 1 月 20 日
```
列 列
女 女
老 老
里 里
```

我也踩过坑, unicode 的区块是 84308130 - 8430A330
imn1
2017 年 1 月 20 日
怪不得那么多部门都要你自证身份, 2333



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

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



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

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

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

看多了这个字,会突然不认识的。
SkYouth
2017 年 1 月 20 日
假的我
SourceMan
2017 年 1 月 20 日

少了一个勾
Sylv
2017 年 1 月 20 日
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
2017 年 1 月 20 日
@Sylv 呃, V2EX 不支持链接中有中文,补个编码后的链接:
https://zh.wikipedia.org/zh-cn/Unicode%E7%AD%89%E4%BB%B7%E6%80%A7
xycool
2017 年 1 月 20 日

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/335808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX