fqxufo
V2EX  ›  问与答

为什么有些繁体字用 gbk 编码 UrlEncode 和 gbk 编码表不一致?

  •  
  •   fqxufo · Jun 26, 2019 · 3150 views
    This topic created in 2692 days ago, the information mentioned may be changed or developed.
    比如繁体字"華",在经过 UrlEncode ( http://www.atool9.com/urlencode.php )之后:变成了“%C8A ”,但是查询 gbk 编码表( http://ff.163.com/newflyff/gbk-list/ ),对应的却是“ C841"呢?
    6 replies  •  2019-06-26 08:54:38 +08:00
    weyou
    weyou
    Jun 26, 2019 via Android❤️1
    1
    A == %41
    msg7086
    msg7086
    Jun 26, 2019
    2
    %C8 %41
    %C8 A
    fqxufo
    fqxufo
    OP
    Jun 26, 2019 via iPhone
    3
    @msg7086 能否再解释清楚一点呢?如果是二次 urlencode,为什么第一个百分号不会被继续转译?非常感谢
    msg7086
    msg7086
    Jun 26, 2019
    4
    @fqxufo 没有二次转译啊。
    華 是 0xC841
    0xC8 转译成%C8
    0x41 就是 A,可以转译成%41,也可以不转译,保留原样 A。
    msg7086
    msg7086
    Jun 26, 2019❤️1
    5
    比如 荙 这个字,是 0xC751。
    0xC7 转译成%C7
    0x51 是 Q,也可以转译成%51

    所以%C7Q 或者%C7%51 都可以。
    fqxufo
    fqxufo
    OP
    Jun 26, 2019
    6
    @msg7086 非常感谢您的回答。还是我太蠢,一直在纠结二次转译上面,没有意识到 0x41 就是 ascii 里 A 的码位。

    所以我现在想使用 TextDecoder ( https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder )转码 gbk,直接先把所有两位字符转换为对应的数字,然后把整体 Uint8Array,最后用 gbk 编码方式的 TextDecoder 处理就可以了吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1558 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:14 · PVG 20:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.