V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
garywill
V2EX  ›  Node.js

字符编码的坑很多,一个简陋的 Unicode 强迫症可视化工具

  •  
  •   garywill · 2023-02-13 09:04:34 +08:00 · 2699 次点击
    这是一个创建于 656 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知道叫什么名好,用丑陋的 web UI 做的这个工具,估且叫《 Unicode 强迫症可视化》

    字符编码的坑很多。(太多了,具体看 readme 里写了一堆): https://github.com/garywill/cc-visualize

    Screenshot

    unihan 的坑也有,像之前的什么“入职”字的事:

    汉字本身的繁简异体关系也多

    Screenshot

    有谁踩了坑了呢? rime 和 fcitx 这两个开源输入法的 table 中就有坑: https://github.com/garywill/cc-visualize/discussions

    那些搜狗、苹果之类的输入法里肯定也有。自己尝试把同形汉字字符输入搜索引擎,可以发现中文网络上的内容已经含有那些坑在里面了

    7 条回复    2023-02-15 15:32:12 +08:00
    WindProtect
        1
    WindProtect  
       2023-02-13 12:03:59 +08:00
    不错,赞一个
    tramm
        2
    tramm  
       2023-02-13 13:20:35 +08:00
    顶, 有没有那种看起来是汉字实际不是的那种编码呢?

    之前有个人离职, 接手他的代码, 有好多字虽然看着正常, 但是特么根本搜不到.

    就比如: ⼯作模式(工), 累计⾥程(里)...看起来正常, 但是在 IDE 中搜不到, 看了下提交记录, 显示的是个方框里面一个符号 :P
    shijingshijing
        3
    shijingshijing  
       2023-02-13 13:25:40 +08:00
    不错,前些时帮人弄 pdf 检索工具,提取文本,那些个 pdf 有法语的文档,有德语的,有混合希腊字母的,还有 ASCII 码编码的特殊字符,也有 Unicode 编码的特殊字符,本来以为是一个 Python 脚本就能搞定的小 Case ,后来可把我坑惨了。
    garywill
        4
    garywill  
    OP
       2023-02-13 14:14:24 +08:00   ❤️ 1
    @tramm 应该已经涵盖了你说的那些的。下次你放进去试试,把所有选项勾上
    cnbatch
        5
    cnbatch  
       2023-02-14 16:18:47 +08:00
    这个工具很有用,正常文字混用康熙部首实在很不应该,因为会导致文本搜索功能无效化

    某些输入法害人害惨了,我猜测那个读论文系列的作者肯定也是用了这类有坑的输入法,他发的每篇博文几乎都有康熙部首混进去代替正常文字
    cnbatch
        6
    cnbatch  
       2023-02-14 16:31:55 +08:00
    找到了,那个一分钟读论文系列,随便找两个:
    /t/911818
    /t/912321
    只要用 Windows 就能看得出明显不同,比如搜索“生产力”,是无法匹配标题的,因为标题就用了康熙部首
    chengyiqun
        7
    chengyiqun  
       2023-02-15 15:32:12 +08:00
    看起来很有用, 赞一个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:42 · PVG 04:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.