page codepage code asp-classic codepages

asp classic - ¿Son codepage 65001 y utf-8 lo mismo?



codepage 1252 (4)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!--#include file="conn.asp"--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Es el código anterior correcto?


Sí, 65001 es el identificador de página de códigos de Windows para UTF-8, como se documenta en el sitio web de Microsoft . Wikipedia sugiere que la página de códigos de IBM 128 y la página de códigos SAP 4110 también son indicadores de UTF-8.


Sí.

UTF-8 es CP65001 en Windows (que es solo una manera de especificar UTF-8 en las cosas heredadas de la página de códigos). Por lo que leí ASP puede manejar UTF-8 cuando se especifica de esa manera.


Tu código es correcto aunque prefiero configurar el CharSet en código en lugar de usar la metaetiqueta: -

<% Response.CharSet = "UTF-8" %>

La página de códigos 65001 se refiere al juego de caracteres UTF-8. Debería asegurarse de que su página asp (y cualquier incluida) se guarden como UTF-8 si contienen caracteres fuera del conjunto de caracteres ASCII estándar.

Al especificar el atributo CODEPAGE en el bloque <% @, está indicando que todo lo escrito con Response.Write debe codificarse en la página de códigos especificada, en este caso 65001 (utf-8). Vale la pena tener en cuenta que esto no afecta a ningún contenido estático que se envíe byte literal para byte a la respuesta. De ahí la razón por la cual el archivo necesita ser realmente guardado usando la página de códigos que se especifica.

La propiedad CharSet de la respuesta establece el valor CharSet del encabezado Content-Type. Esto no tiene ningún impacto sobre cómo se codifica el contenido, simplemente le dice al cliente qué codificación se está recibiendo. De nuevo, es importante que su valor coincida con la codificación real enviada.


response.codepage = 65001

parece dar un mal resultado cuando el archivo físico se guarda como utf-8

De lo contrario, funciona como se supone que debe.