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

363 天前
 SantinoSong
各位大佬好,问题如标题。
来源是本节点上周的一个帖子,讨论网页代理的:
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 小白,求解。
909 次点击
所在节点    宽带症候群
4 条回复
beyondstars
363 天前
在 HTTP 协议中,Server 返回给 Client 的报文的头部 (HTTP Header) 包含有内容的编码方式,如果内容是 HTML 格式的,在 HTML 内容中也有。

以往,这些信息由 Server 直接返回给 Client (也就是浏览器),现在中间多了个 Proxy, Proxy 也需要正确将 Server 返回的编码信息转交给 Client.
SantinoSong
363 天前
@beyondstars #1 看起来代码已经做了这事。。
aru
362 天前
@SantinoSong
我不知道 js 有没有区分大小写,但是看了你给的代码,似乎是有区分的。nga 的代码用的是
charset=GBK ,照着加上这个再试试有没有乱码
SantinoSong
361 天前
@aru #3 加上了,不行还是乱码,大概是有别的原因。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994775

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX