搜索
查看: 1162|回复: 6

求助 获取到的网站html乱码

[复制链接]

2

主题

6

帖子

37

积分

新手入门

Rank: 1

积分
37
发表于 2017-11-9 10:52:48 | 显示全部楼层 |阅读模式
源码如下:
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);
打印出来的 名称全是乱码 因为是日语网站。编码如何转变过来?
回复

使用道具 举报

8

主题

45

帖子

276

积分

二级会员

Rank: 3Rank: 3

积分
276
发表于 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);

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 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()


回复

使用道具 举报

2

主题

6

帖子

37

积分

新手入门

Rank: 1

积分
37
 楼主| 发表于 2017-11-9 23:01:17 | 显示全部楼层
土冒 发表于 2017-11-9 12:22
编码问题,用chrome看了下网页编码是shift_JIS,对应的内码页是932,转换成utf8就好了

import console;
...

非常感谢您的热心回复,问题可以解决。有个问题还要麻烦您一下,找到这个网页的编码后,是怎么知道对应的内码页的呢? 我是刚刚开始接触aardio。感觉很强大,并且学习起来很容易。
回复

使用道具 举报

2

主题

6

帖子

37

积分

新手入门

Rank: 1

积分
37
 楼主| 发表于 2017-11-9 23:04:06 | 显示全部楼层
Jacen.He 发表于 2017-11-9 16:23
自己写网站用UTF8编码最省事,用ANSI编码会带来很多这样的问题。
我改进了一下 web.rest.client 现在可以 ...

谢谢您的回复,我用您的代码,还是会乱码,我用的 14.07的版本,是需要升级么?您做的这个软件真的很强大,并且上手很快。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 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]+)");


回复

使用道具 举报

8

主题

45

帖子

276

积分

二级会员

Rank: 3Rank: 3

积分
276
发表于 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-10-17 16:10 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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