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

遇到一个奇怪的 bug,一头雾水~大家帮忙看看?

  •  
  •   firhome · 2020-11-09 10:53:26 +08:00 · 2944 次点击
    这是一个创建于 1458 天前的主题,其中的信息可能已经有所发展或是发生改变。
    页面上请求一个接口 A,

    这个接口 A 有一个 字段 text,varchar(2000) ,mysql utf-8 。

    然后在 windows 7 电脑上 一句话里面有几个字会显示 方块。 接口返回,页面展示会显示方块

    但是在其它电脑上完全正常。


    然后查了一下发型两个字的字符编码完全不同

    比如:“你好” (用户不知道从哪里 copy 过来的就是不能用),但是我本地重新写个“你好” 确可以使用。

    但是长的确一模一样。

    前端就是一个 input 输入框 用户 copy 后端直接存。 显示的时候 就是 win7 有几个字出现方块(接口返回也是方块)
    第 1 条附言  ·  2020-11-09 11:39:57 +08:00
    [⻓] 和 [长] 就这两个字,第一个字 win7 里显示 方块,第二个字 是我打的正常。我不确定这样直接回复 出来还对不对。
    22 条回复    2020-11-16 10:20:25 +08:00
    shintendo
        1
    shintendo  
       2020-11-09 11:03:29 +08:00
    然后查了一下发型两个字的字符编码完全不同
    --------
    字符编码贴一下呗
    KuroNekoFan
        2
    KuroNekoFan  
       2020-11-09 11:10:10 +08:00
    utf8-bom?
    opengps
        3
    opengps  
       2020-11-09 11:11:23 +08:00 via Android
    从 word 里换个字体试试?
    firhome
        4
    firhome  
    OP
       2020-11-09 11:39:04 +08:00
    @shintendo [⻓] 和 [长] 就这两个字,第一个字 win7 里显示 方块,第二个字 是我打的正常。我不确定这样直接回复 出来还对不对。
    CloudnuY
        5
    CloudnuY  
       2020-11-09 11:45:35 +08:00   ❤️ 1
    @firhome #4 这两个字不是一个字,第一个是 [中日韩字根简体中文长] unicode 编号 U+2ED3,第二个是 [中日韩象形文字长] unicode 编号 U+957F
    firhome
        6
    firhome  
    OP
       2020-11-09 11:46:07 +08:00
    @CloudnuY 那这种问题该怎么解决呢?
    hahastudio
        7
    hahastudio  
       2020-11-09 11:47:18 +08:00
    你别说还真不一样
    '⻓' 0x2ed3 在中日韩汉字部首补充里
    '长' 0x957f 在中日韩统一表意文字列表里
    通常打出来的都是 0x957f
    yiXu
        8
    yiXu  
       2020-11-09 11:47:45 +08:00
    确实不一样,前者是 \u2ed3,后者是 \u957f
    yiXu
        9
    yiXu  
       2020-11-09 11:49:11 +08:00
    页面显示编码支持就行,如果不支持,那就没办法,只能转换到支持的编码吧
    liyang5945
        10
    liyang5945  
       2020-11-09 11:50:28 +08:00
    刚才在调试工具里试了下:
    '长'.charCodeAt(0) ==>38271
    '⻓'.charCodeAt(0)==>11987
    就是字符编码不一样呗,猜测可能是繁体字符 ?
    firhome
        11
    firhome  
    OP
       2020-11-09 11:51:36 +08:00
    @yiXu 关键是就 win7 不行, 如果转的话 是人工转呢 还是 ?
    CloudnuY
        12
    CloudnuY  
       2020-11-09 11:53:15 +08:00
    @firhome #11 人工做一个字典库吧,遇到一个加一条
    hahastudio
        13
    hahastudio  
       2020-11-09 12:00:38 +08:00
    也许要修改一下 Windows 的 Region ?
    yiXu
        14
    yiXu  
       2020-11-09 12:07:14 +08:00
    @firhome 页面编码不是 utf-8 ?是否可以设置为 utf-8
    Curtion
        15
    Curtion  
       2020-11-09 12:12:23 +08:00
    查了一下,这俩的编码来自:中日韩汉字部首补充和中日韩统一表意文字,估计是不同的机构定义的?
    firhome
        16
    firhome  
    OP
       2020-11-09 12:21:03 +08:00
    @yiXu 是 utf-8
    lxk11153
        17
    lxk11153  
       2020-11-09 12:25:57 +08:00
    https://en.wiktionary.org/wiki/%E9%95%BF
    > U+957F, 长
    > CJK UNIFIED IDEOGRAPH-957F
    > U+2ED3, ⻓
    > CJK RADICAL C-SIMPLIFIED LONG

    你说的"你好"没看到。
    firhome
        18
    firhome  
    OP
       2020-11-09 12:28:00 +08:00
    @lxk11153 我那是之前举例, 看我补充内容,那个 长 字
    imn1
        20
    imn1  
       2020-11-09 12:33:22 +08:00
    CJK Radicals Supplement Range: 2e80 ~ 2eff (这范围也就 128 个字符)
    主要是汉字的偏旁部首,有少量简单汉字,但也是作为汉字的“部分”来看待的
    这些字符一般需要特殊方式输入,不是平常打字打出来的
    写段代码识别一下就行了

    而后面说的“字型”、“你好”那些,应该就是 GBK 和 utf-8 的区别
    nutting
        21
    nutting  
       2020-11-12 18:03:55 +08:00
    客户是日本人吧
    Cu635
        22
    Cu635  
       2020-11-16 10:20:25 +08:00
    @CloudnuY
    用的啥工具看出来的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.