• 请不要在回答技术问题时复制粘贴 AI 生成的内容
firhome
V2EX  ›  程序员

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

  •  
  •   firhome · Nov 9, 2020 · 3812 views
    This topic created in 2194 days ago, the information mentioned may be changed or developed.
    页面上请求一个接口 A,

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

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

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


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

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

    但是长的确一模一样。

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

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

    而后面说的“字型”、“你好”那些,应该就是 GBK 和 utf-8 的区别
    nutting
    nutting
    Nov 12, 2020
    21
    客户是日本人吧
    Cu635
    Cu635
    Nov 16, 2020
    22
    @CloudnuY
    用的啥工具看出来的?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2524 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 11:41 · PVG 19:41 · LAX 03:41 · JFK 06:41
    ♥ Do have faith in what you're doing.