codifica utf-8: non riesco a leggere l'html
Cari membri della comunità,
stavo cercando di aprire la pagina amazon.co.uk nel modo seguente ma senza successo:
Names Default To Here( 1 );
webpage= Load Text File ("https://www.amazon.co.uk");
questo è quello che ottengo nel log:
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 />
se provo lo stesso comando con amazon.com va tutto bene.
Ho controllato il codice html della pagina e sembra che questo accada circa 7 volte. quindi presumo che sia utf-8
meta charset="utf-8"
ho anche provato a modificare le preferenze File di dati di testo >> Apri set di caratteri del file di testo >> Ipotesi migliore ma continua a non funzionare
sarei grato per qualsiasi idea.
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-707036" slang="en-US" mode="NONE"><LINGO-LABEL>Accesso ai dati</LINGO-LABEL><LINGO-LABEL>finestre</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-707056" slang="en-US" mode="NONE">Ri: codifica utf-8 - non riesco a leggere l'html</LINGO-SUB><LINGO-BODY id="lingo-body-707056" slang="en-US" mode="NONE"><P>Interessante. Amazon sta comprimendo i dati. Due modi per risolverlo; il nuovo metodo di richiesta http ti consente di verificare se è compresso:</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 );
Ri: codifica utf-8 - non riesco a leggere l'htmlGrazie Esperti!

Ri: codifica utf-8 - non riesco a leggere l'htmlLa riga 1 crea un oggetto HTTP Request e lo inserisce nella variabile request. L'URL di Amazon è nei dati dell'oggetto, ma non è ancora avvenuta alcuna comunicazione, quindi l'oggetto della richiesta non sa cosa accadrà.
La linea 2 invia la richiesta GET ad amazon; la parte del carico utile della risposta di Amazon viene copiata nella variabile fetch. Nel log verrà visualizzata una nota indicante che è stato archiviato un BLOB perché i dati erano dati binari anziché Unicode corretto. Esistono anche altri metadati di Amazon; le intestazioni restituite da Amazon vengono conservate nell'oggetto Richiesta HTTP.
La riga 3 stampa un valore dalle intestazioni memorizzate, in particolare l'intestazione di codifica del contenuto. Questo deve avere più logica if(...) per verificare se è presente un'intestazione di codifica del contenuto nell'array associativo e quindi se il suo valore è "gzip" prima di scegliere di decomprimere il carico utile.
La riga 4 dipende dal recupero che contiene un blob compresso con gzip per il payload. Dipende quindi dal fatto che i dati binari che sono stati decompressi siano UTF-8 validi che possono essere convertiti in caratteri.
La riga 5 stampa tutti i dati del carico utile; ce n'è molto e JMP lo troncherà nel registro se non lo scrivi esplicitamente (...).
Ri: codifica utf-8 - non riesco a leggere l'htmlHo inviato una nota al team di supporto. Penso che JMP avrebbe dovuto gestire questo problema, con un messaggio migliore o rilevando la compressione ed eseguendo passaggi aggiuntivi. Forse è un po' problematico, ma funzionerebbe fino a quando non verrà visualizzato qualcosa di diverso dal testo compresso con gzip... probabilmente al 99%.