搜索
aardio官方社区 门户 查看主题

求助 获取到的网站html乱码

发布者: lbw0319 | 发布时间: 2017-11-9 10:52| 查看数: 472| 评论数: 6|帖子模式

源码如下:
import console;
import inet.http;

http = inet.http();
html = http.get("http://maruzen-toy.com/photo/TK");


io.open();
io.print(html)


console.pause(true);
打印出来的 名称全是乱码 因为是日语网站。编码如何转变过来?

最新评论

土冒 发表于 2017-11-9 12:22:27
编码问题,用chrome看了下网页编码是shift_JIS,对应的内码页是932,转换成utf8就好了

import console;
import inet.http;
var http = inet.http();

var html = http.get("http://maruzen-toy.com/photo/TK");
html = ..string.fromto(html, 932, 65001)
console.log(html)

console.pause(
true);

Jacen.He 发表于 2017-11-9 16:23:43
自己写网站用UTF8编码最省事,用ANSI编码会带来很多这样的问题。
我改进了一下 web.rest.client 现在可以自动识别转换日文这些:
import console;
import web.rest.client;

var http = web.rest.client();
var html = http.get("http://maruzen-toy.com/photo/TK");

//这个网站很慢,有时会超时
console.log( html : http.lastResponse() );
console.pause()


lbw0319 发表于 2017-11-9 23:01:17
土冒 发表于 2017-11-9 12:22
编码问题,用chrome看了下网页编码是shift_JIS,对应的内码页是932,转换成utf8就好了

import console;
...

非常感谢您的热心回复,问题可以解决。有个问题还要麻烦您一下,找到这个网页的编码后,是怎么知道对应的内码页的呢? 我是刚刚开始接触aardio。感觉很强大,并且学习起来很容易。
lbw0319 发表于 2017-11-9 23:04:06
Jacen.He 发表于 2017-11-9 16:23
自己写网站用UTF8编码最省事,用ANSI编码会带来很多这样的问题。
我改进了一下 web.rest.client 现在可以 ...

谢谢您的回复,我用您的代码,还是会乱码,我用的 14.07的版本,是需要升级么?您做的这个软件真的很强大,并且上手很快。
Jacen.He 发表于 2017-11-9 23:06:57
lbw0319 发表于 2017-11-9 23:04
谢谢您的回复,我用您的代码,还是会乱码,我用的 14.07的版本,是需要升级么?您做的这个软件真的很强大 ...

14.08 才添加的,需要更新,
服务器的响应头里有编码的,参考 web.rest.client的源码,
var charset = ..string.match(this._http.responseContentType,";\s*charset\s*=\s*([^;\s]+)");


土冒 发表于 2017-11-10 16:25:58
lbw0319 发表于 2017-11-9 23:01
非常感谢您的热心回复,问题可以解决。有个问题还要麻烦您一下,找到这个网页的编码后,是怎么知道对应的 ...

最简单直接的办法是百度“shift_JIS codepage”就可以看到诸如“codepage 932”“CP932”的字眼,我当时就这么干的。也可以到MSDN搜索“codepage”,里面示例里有编码<->内码对照表可以copy保存起来方便以后查用。当然,这些是有助于了解相关的知识点,版主更新了web.rest.clien库,实质上已经解决了这个问题,捋了下库源码,发现是通过查询注册表获取的,非常方便实用。。。

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-4-23 21:33 , Processed in 0.078147 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表