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">Re: utf-8 エンコード - HTML を読み取れません</LINGO-SUB><LINGO-BODY id="lingo-body-707056" slang="en-US" mode="NONE"><P>面白い。 アマゾンはデータを圧縮しています。 それを修正するには 2 つの方法があります。新しい http リクエスト方法を使用すると、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 );
Re: utf-8 エンコード - HTML を読み取れません専門家に感謝します!

Re: utf-8 エンコード - HTML を読み取れません行 1 では、HTTP リクエスト オブジェクトを作成し、それをリクエスト変数に入れます。 amazon URL はオブジェクトのデータ内にありますが、まだ通信が行われていないため、リクエスト オブジェクトは何が起こるかわかりません。
行 2 は GET リクエストを amazon に送信します。アマゾンからの回答のペイロード部分がフェッチ変数にコピーされます。 データが適切な Unicode ではなくバイナリ データであったために BLOB が保存されたというメモがログに表示されます。 amazon からの他のメタデータもあります。 amazon が返すヘッダーは HTTP リクエスト オブジェクトに保存されます。
行 3 は、保存されているヘッダー、特にコンテンツ エンコーディング ヘッダーからの値を出力します。 これには、連想配列にコンテンツ エンコーディング ヘッダーがあるかどうかをテストし、ペイロードの解凍を選択する前にその値が「gzip」であるかどうかをテストするための if(...) ロジックがさらに必要です。
行 4 は、ペイロードの gzip 圧縮された BLOB を保持するフェッチに依存しています。 次に、解凍されたバイナリ データが文字に変換できる有効な UTF-8 であるかどうかに依存します。
行 5 はすべてのペイロード データを出力します。たくさんあるので、明示的に書き込まないと (...)、JMP はログ内でそれを切り捨てます。
Re: utf-8 エンコード - HTML を読み取れませんサポートチームにメモを送りました。 JMP は、より適切なメッセージを使用するか、圧縮を検出して追加の手順を実行することで、これを処理するべきだったと思います。 これには少し問題があるかもしれませんが、gzip 形式のテキスト以外のものが表示されるまでは機能するでしょう...おそらく 99% は機能します。