V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SantinoSong
V2EX  ›  宽带症候群

求教,网页代理出现的中文乱码何解?

  •  
  •   SantinoSong · 2023-11-24 11:18:53 +08:00 · 915 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大佬好,问题如标题。
    来源是本节点上周的一个帖子,讨论网页代理的:
    https://www.v2ex.com/t/992044

    我不太懂 web 相关的技术,但是看了觉得蛮有意思的,于是拿了回复中的几个方案试了一下,比如:
    https://github.com/netptop/siteproxy
    https://github.com/Hideipnetwork/hideipnetwork-web/tree/v3.1-beta

    第一个方案可以直接部署在 cf worker 上,所以我先跑了这个,可以用。
    问题来了,我接着拿了国内几个论坛网站试了试。却发现有的中文网站会出现乱码。比如 NGA 游戏论坛(nga.178.com)
    查了一下,说这种乱码是编码解析的问题,比如论坛用的是 GBK ,可能是脚本没有正确解析。
    于是我问 gpt 怎么解决,它告诉我一个方案,就是脚本要对于 gbk 编码进行处理,我问了解法之后,打算修改代码,却发现上面的 siteproxy 项目里面其实已经做过了: https://github.com/netptop/siteproxy/commit/e1f7d2c9b810919b7d29ea535cb55ac9fb46e1bb

    这下我没辙了,上面提到的第二个方案也是乱码,难道是这个网站有什么特殊嘛?

    web 小白,求解。
    4 条回复    2023-11-26 18:18:59 +08:00
    beyondstars
        1
    beyondstars  
       2023-11-24 12:40:28 +08:00
    在 HTTP 协议中,Server 返回给 Client 的报文的头部 (HTTP Header) 包含有内容的编码方式,如果内容是 HTML 格式的,在 HTML 内容中也有。

    以往,这些信息由 Server 直接返回给 Client (也就是浏览器),现在中间多了个 Proxy, Proxy 也需要正确将 Server 返回的编码信息转交给 Client.
    SantinoSong
        2
    SantinoSong  
    OP
       2023-11-24 17:10:10 +08:00
    @beyondstars #1 看起来代码已经做了这事。。
    aru
        3
    aru  
       2023-11-26 00:09:34 +08:00
    @SantinoSong
    我不知道 js 有没有区分大小写,但是看了你给的代码,似乎是有区分的。nga 的代码用的是
    charset=GBK ,照着加上这个再试试有没有乱码
    SantinoSong
        4
    SantinoSong  
    OP
       364 天前
    @aru #3 加上了,不行还是乱码,大概是有别的原因。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:19 · PVG 05:19 · LAX 13:19 · JFK 16:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.