codificación utf-8: no puedo leer html
Queridos miembros de la comunidad,
Estaba intentando abrir la página amazon.co.uk de la siguiente manera pero sin éxito:
Names Default To Here( 1 );
webpage= Load Text File ("https://www.amazon.co.uk");
esto es lo que obtengo en el registro:
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 />
Si intento el mismo comando con amazon.com, todo está bien.
Revisé el código html de la página y parece tener esto unas 7 veces. entonces supongo que es utf-8
meta charset="utf-8"
También intenté cambiar las preferencias Archivo de datos de texto >> Abrir conjunto de caracteres del archivo de texto >> Mejor suposición, pero todavía no funciona
Estaría agradecido por cualquier idea.
</CODE></P>
<P> </P>
<P> </P>
<P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-707036" slang="en-US" mode="NONE"><LINGO-LABEL>Acceso a los datos</LINGO-LABEL><LINGO-LABEL>ventanas</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-707056" slang="en-US" mode="NONE">Re: codificación utf-8 - no puedo leer html</LINGO-SUB><LINGO-BODY id="lingo-body-707056" slang="en-US" mode="NONE"><P>Interesante. Amazon está comprimiendo los datos. Dos formas de solucionarlo; la nueva forma de solicitud http le permite verificar si está comprimido:</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: codificación utf-8 - no puedo leer html¡Gracias expertos!

Re: codificación utf-8 - no puedo leer htmlLa línea 1 crea un objeto de solicitud HTTP y lo coloca en la variable de solicitud. La URL de Amazon está en los datos del objeto, pero aún no se ha producido ninguna comunicación, por lo que el objeto de solicitud no sabe qué sucederá.
La línea 2 envía la solicitud GET a Amazon; la parte de carga útil de la respuesta de Amazon se copia en la variable de recuperación. Verá una nota en el registro que indica que se almacenó un blob porque los datos eran binarios en lugar de Unicode adecuado. También hay otros metadatos de Amazon; los encabezados que devuelve Amazon se mantienen en el objeto de solicitud HTTP.
La línea 3 imprime un valor de los encabezados almacenados, específicamente el encabezado de codificación de contenido. Esto necesita tener más lógica if(...) para probar si hay un encabezado de codificación de contenido en la matriz asociativa y luego si su valor es "gzip" antes de elegir descomprimir la carga útil.
La línea 4 depende de fetch que contiene un blob comprimido con gzip para la carga útil. Luego depende de que los datos binarios que se descomprimieron sean UTF-8 válidos y se puedan convertir a caracteres.
La línea 5 imprime todos los datos de la carga útil; hay mucho y JMP lo truncará en el registro si no lo escribe explícitamente (...).
Re: codificación utf-8 - no puedo leer htmlEnvié una nota al equipo de soporte. Creo que JMP debería haber manejado esto, ya sea con un mejor mensaje o detectando la compresión y realizando pasos adicionales. Eso es un poco problemático, tal vez, pero funcionaría hasta que aparezca algo más que texto comprimido con gzip... 99% probablemente.