utf-8编码 - 无法读取html
亲爱的社区成员,
我试图通过以下方式打开 amazon.co.uk 页面,但没有成功:
Names Default To Here( 1 );
webpage= Load Text File ("https://www.amazon.co.uk");
这是我在日志中得到的内容:
JMP could not read all the text in 'www.amazon.co.uk' correctly.
The document might use a text encoding that JMP does not recognize; or JMP might have chosen the wrong encoding (utf-8). Text that JMP could not understand has been removed. The JMP character set preference is set to utf-8.
The location of the first read error is 4 and the byte at that location was 0. <BR /><BR />"��t������ ��`��L&��dv'�B^�V��f��<BR />�;�焎�3�=�wEG1E�����p��������!���m��X�f{����$�f���6=�ٓί�g!(j<BR />�ŨI*|T�M�[ٗ�\!"��HA��\��Y�$o������&����P����*K&�;\!"��C��G^b��� E�i J����f:{{�!7(G�A��U���z+�7�D�<�7U�Y<BR /><BR />......<BR />
如果我尝试使用 amazon.com 执行相同的命令,一切都很好。
我已经检查了该页面的 html 代码,似乎有大约 7 次。所以我假设它是utf-8
meta charset="utf-8"
还尝试更改首选项文本数据文件>>打开文本文件字符集>>最佳猜测但它仍然不起作用
如有任何想法,将不胜感激。
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-707036" slang="en-US" mode="NONE"><LINGO-LABEL>数据存取</LINGO-LABEL><LINGO-LABEL>视窗</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-707056" slang="en-US" mode="NONE">回复:utf-8编码-无法读取html</LINGO-SUB><LINGO-BODY id="lingo-body-707056" slang="en-US" mode="NONE"><P>有趣的。 亚马逊正在压缩数据。 有两种修复方法;新的http请求方式可以让你检查它是否被压缩:</P>
<PRE><CODE class=" language-jsl">webpage = Load Text File( "https://www.amazon.co.uk", blob() );
webpage = Blob To Char( Gzip Uncompress( webpage ) );
Write( webpage );
// the better way...
request = New HTTP Request( URL( "https://www.amazon.co.uk" ), Method( "GET" ) );
fetch = request << Send;
Show( (request << Get Response Headers)["content-encoding"] );// gzip
webpage = Blob To Char( Gzip Uncompress( fetch ) );
Write( webpage );
回复:utf-8编码-无法读取html感谢专家!

回复:utf-8编码-无法读取html第 1 行创建一个 HTTP Request 对象并将其放入 request 变量中。 亚马逊 URL 位于对象的数据中,但尚未发生任何通信,因此请求对象不知道会发生什么。
第2行向亚马逊发送GET请求;来自亚马逊的答案的有效负载部分被复制到 fetch 变量中。 您将在日志中看到一条注释,指出存储了 blob,因为数据是二进制数据而不是正确的 Unicode。 亚马逊还有其他元数据;亚马逊返回的标头保存在 HTTP 请求对象中。
第 3 行打印存储的标头中的值,特别是内容编码标头。 这需要有更多的 if(...) 逻辑来测试关联数组中是否存在内容编码标头,然后在选择解压缩有效负载之前测试其值是否为“gzip”。
第 4 行依赖于 fetch 保存负载的 gzipped blob。 然后,它取决于解压缩的二进制数据是否为可转换为字符的有效 UTF-8。
第5行打印所有有效负载数据;有很多,如果您没有显式 write(...) 它,JMP 会在日志中截断它。
回复:utf-8编码-无法读取html我向支持团队发送了一张便条。 我认为 JMP 应该已经处理了这个问题,要么提供更好的消息,要么通过检测压缩并执行额外的步骤。 也许这有点问题,但是直到 gzip 压缩文本以外的其他内容出现之前都可以工作...... 99% 可能。