sql >> Base de Datos >  >> RDS >> Mysql

Classic ASP + Motobit Pure ASP Upload + juego de caracteres UTF-8

Comprender cómo IIS procesa la codificación ASP

Al igual que con todos los problemas de codificación en ASP clásico, es útil comprender qué propósito cumplen los diversos comandos (ya que con demasiada frecuencia las personas los usan incorrectamente, porque parece resolver el problema) .

<%@ Language = "VBScript" CodePage = 65001 %>

Esta línea suele malinterpretarse, la sintaxis <%@ es una "ASP @ Directiva de procesamiento" y sirve para decirle a IIS cómo procesar la página ASP y es probablemente uno de los comandos más importantes cuando se trata de trabajar con la codificación correctamente.

Esto significa que @CodePage siempre debe coincidir con la codificación física que se utilizó cuando se creó la página. Es posible que necesite usar un editor de texto avanzado para resolver esto, algunos ejemplos son Notepad++ (muestra la codificación en la barra de estado en la parte inferior derecha de la ventana GUI) y Visual Studio (Tiene un comando de menú oculto llamado Advanced Save Options al que se puede acceder personalizando la barra de menú) .

<% Response.CodePage = 65001 %>

Nuevamente, a menudo se malinterpreta, el propósito de este comando es decirle a IIS cómo se deben codificar las cadenas dinámicas (por cadenas dinámicas nos referimos a cualquier cosa que se genere usando Response.Write() ) . Posiblemente la parte más importante de todo el proceso, si se configura incorrectamente o si se supone que pueden ocurrir discrepancias de codificación.

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

Este comando establece el ;charset=utf-8 en el Content-Type Encabezado HTTP cuando la respuesta se envía desde el servidor al navegador del cliente, le dice al navegador que esta respuesta debe procesarse como UTF-8 en lugar del código predeterminado. Significado como

Response.AddHeader "Content-Type", "text/html; charset=utf-8"

es superfluo y no debe ser utilizado. También vale la pena señalar que hay un comando para Content-Type Encabezado HTTP también

Response.ContentType = "text/html"

haciéndolo aún más redundante de lo que ya era.

Enlaces útiles