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

请问这个字符2是什么编码的和 2 有什么区别?

  •  
  •   dengji85 · 2023-02-14 15:36:05 +08:00 · 1424 次点击
    这是一个创建于 640 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据库有一个数字类型的字符串,进行求和统计时总是报错,后面发现是有人输入了这个2,小弟对编码不太熟,请问一下各位这个是怎么输入的

    9 条回复    2023-02-14 16:14:23 +08:00
    krixaar
        1
    krixaar  
       2023-02-14 15:43:30 +08:00   ❤️ 1
    这不就是全角的2嘛……谁的输入法不小心按到Shift+空格了。
    thinkershare
        2
    thinkershare  
       2023-02-14 15:47:30 +08:00   ❤️ 1
    有无数输入办法,我以前写过一个工具,可以输入整个 Unicode 平面的任意字符,并可以查看相似的字符。最简单的办法直接构造字符的 Unicode 码点,然后编码为 UTF-8 存如文件,然后可以看查看任何 Unicode 字符了。Windows 自带的也有字符映射表。
    timethinker
        3
    timethinker  
       2023-02-14 15:51:59 +08:00   ❤️ 2
    就是 Unicode 编码的字符

    console.log('2'.codePointAt(0).toString(16));
    // output: ff12

    console.log('\uff12');
    // output: 2
    corcre
        4
    corcre  
       2023-02-14 15:52:59 +08:00
    让我想起来之前找到的一个问题, 客户发过来的文件死活导不进去, 查了半天一个个字符核对发现里面有个Ζ是 Zeta...
    retanoj
        5
    retanoj  
       2023-02-14 15:55:15 +08:00
    - “有一个数字类型字符串”
    eason1874
        6
    eason1874  
       2023-02-14 16:07:43 +08:00   ❤️ 1
    @timethinker #3 数字 2 也有 Unicode 编码啊

    console.log('2'.codePointAt(0).toString(16));
    // output: 32

    console.log('\u0032');
    // output: 2
    eason1874
        7
    eason1874  
       2023-02-14 16:09:18 +08:00   ❤️ 1
    全角数字理解成数字特殊符号就行,类似 ② 这种,都是字符串,不是数字,输入的时候判断一下类型就可以了
    dengji85
        8
    dengji85  
    OP
       2023-02-14 16:11:05 +08:00
    @krixaar
    @thinkershare
    @timethinker 感谢,刚刚自己 java 输出了一下,直接搜码值也搜出来了。不过还是不明白为什么 oracle 数据库不能对 unicode 的 2 转数字
    timethinker
        9
    timethinker  
       2023-02-14 16:14:23 +08:00   ❤️ 1
    这个2并不是真的 2 ,只是看起来像 2 ,所以如果你只接受数字,则不应该允许这种数据入库,可以在转换前自己转换或者拒绝输入,通过正则表达式可以很容易实现这种检测。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:22 · PVG 12:22 · LAX 20:22 · JFK 23:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.