UTF-8-Kodierung - HTML kann nicht gelesen werden
Liebe Mitglieder der Community,
Ich habe versucht, die Seite amazon.co.uk auf folgende Weise zu öffnen, aber ohne Erfolg:
Names Default To Here( 1 );
webpage= Load Text File ("https://www.amazon.co.uk");
Folgendes bekomme ich im Protokoll:
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 />
Wenn ich den gleichen Befehl mit amazon.com versuche, ist alles in Ordnung.
Ich habe den HTML-Code der Seite überprüft und es scheint, dass dies etwa sieben Mal der Fall war. Ich gehe also davon aus, dass es UTF-8 ist
meta charset="utf-8"
Habe auch versucht, die Einstellungen Textdatendatei >> Textdatei-Zeichensatz öffnen >> Beste Vermutung zu ändern, aber es funktioniert immer noch nicht
wäre für jede idee dankbar.
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-707036" slang="en-US" mode="NONE"><LINGO-LABEL>Datenzugriff</LINGO-LABEL><LINGO-LABEL>Windows</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-707056" slang="en-US" mode="NONE">Betreff: UTF-8-Kodierung - HTML kann nicht gelesen werden</LINGO-SUB><LINGO-BODY id="lingo-body-707056" slang="en-US" mode="NONE"><P>Interessant. Amazon komprimiert die Daten. Zwei Möglichkeiten, das Problem zu beheben; Mit der neuen HTTP-Anfragemethode können Sie überprüfen, ob sie komprimiert ist:</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 );
Betreff: UTF-8-Kodierung - HTML kann nicht gelesen werdenDanke Experten!

Betreff: UTF-8-Kodierung - HTML kann nicht gelesen werdenZeile 1 erstellt ein HTTP-Request-Objekt und fügt es in die Request-Variable ein. Die Amazon-URL befindet sich in den Daten des Objekts, es hat jedoch noch keine Kommunikation stattgefunden, sodass das Anforderungsobjekt nicht weiß, was passieren wird.
Zeile 2 sendet die GET-Anfrage an Amazon; Der Payload-Teil der Antwort von Amazon wird in die Fetch-Variable kopiert. Im Protokoll wird ein Hinweis angezeigt, dass ein Blob gespeichert wurde, weil es sich bei den Daten um Binärdaten und nicht um echten Unicode handelte. Es gibt auch andere Metadaten von Amazon; Die von Amazon zurückgegebenen Header werden im HTTP-Request-Objekt gespeichert.
Zeile 3 gibt einen Wert aus den gespeicherten Headern aus – insbesondere den inhaltskodierenden Header. Dies erfordert mehr if(...)-Logik, um zu testen, ob es einen inhaltskodierenden Header im assoziativen Array gibt und ob sein Wert „gzip“ ist, bevor die Nutzlast dekomprimiert wird.
Zeile 4 hängt davon ab, dass fetch einen gezippten Blob für die Nutzlast enthält. Es kommt dann darauf an, dass die entpackten Binärdaten gültiges UTF-8 sind, das in Zeichen konvertiert werden kann.
Zeile 5 druckt alle Nutzdaten; Es gibt eine Menge davon und JMP schneidet sie im Protokoll ab, wenn Sie sie nicht explizit schreiben(...).
Betreff: UTF-8-Kodierung - HTML kann nicht gelesen werdenIch habe eine Nachricht an das Support-Team gesendet. Ich denke, JMP hätte damit umgehen sollen, entweder mit einer besseren Meldung oder indem es die Komprimierung erkennt und die zusätzlichen Schritte ausführt. Das ist vielleicht ein wenig problematisch, würde aber funktionieren, bis etwas anderes als gezippter Text angezeigt wird ... 99 % wahrscheinlich.