Su código es correcto aunque prefiero configurar el juego de caracteres en el código en lugar de utilizar la etiqueta meta: - 65001
<% Response.CharSet = "UTF-8" %>
La página de códigos hace referencia al conjunto 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 <% @, indica 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.
¿De qué manera es Codepage "legacy"? – AnthonyWJones
Históricamente, los textos tenían una * página de códigos * que simplemente especificaba qué conjunto de caracteres usar. Aquellos tenían un número que difería de un proveedor a otro, Windows parece usar un entero sin signo de 16 bits para ese propósito. Hoy en día, la mayoría de las codificaciones y conjuntos de caracteres tienen * nombres * en lugar de * números *. Considero que el hecho de que UTF-8 tenga un número de página de códigos (que no se especifica en ninguna parte ni se usa fuera de Microsoft) sirve para garantizar que siga funcionando con el antiguo sistema de números de páginas de códigos enteros de 16 bits. Aunque UTF-8 no se parece en nada a una página de códigos en primer lugar. – Joey
@Johannes: el número de página de códigos sigue siendo una característica importante de cómo maneja Windows la codificación de caracteres. Por ejemplo, en .NET, la clase de Codificación solo se puede instanciar usando el número de página de códigos. No creo que Codepage sea aún "heredado". – AnthonyWJones