sql >> Database teknologi >  >> RDS >> Mysql

Classic ASP + Motobit Pure ASP Upload + UTF-8 Charset

Forstå hvordan IIS behandler ASP-kodning

Som med alle kodningsproblemer i Classic ASP hjælper det med at forstå, hvilket formål de forskellige kommandoer opfylder (da folk alt for ofte bruger dem forkert, fordi det ser ud til at løse problemet) .

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

Denne linje er almindeligvis misforstået, syntaksen <%@ er et "ASP @ Processing Directive" og tjener til at fortælle IIS, hvordan man behandler ASP-siden og er sandsynligvis en af ​​de vigtigste kommandoer, når det kommer til at arbejde med korrekt kodning.

  • @Language fortæller IIS, hvilket registreret Active Scripting Language der skal bruges til at behandle ASP-siden.

  • @CodePage fortæller IIS, hvilken CodePage der skal bruges til at behandle ASP-siden. Hvis siden er blevet gemt ved hjælp af UTF-8 så skal IIS vide, når siden behandles, skal den bruge CodePage 65001 (også kendt som UTF-8 ) .

Det betyder, at @CodePage skal altid matche den fysiske kodning, der blev brugt, da siden blev oprettet. Du skal muligvis bruge en avanceret teksteditor for at finde ud af dette, nogle eksempler er Notepad++ (viser kodning på statuslinjen nederst til højre i GUI-vinduet) og Visual Studio (Har en skjult menukommando kaldet Advanced Save Options som kan tilgås ved at tilpasse menulinjen) .

<% Response.CodePage = 65001 %>

Igen ofte misforstået, er formålet med denne kommando at fortælle IIS, hvordan dynamiske strenge skal kodes (med dynamiske strenge mener vi alt, der udsendes ved hjælp af Response.Write() ) . Muligvis den vigtigste del af hele processen, hvis den er indstillet forkert eller antages, at der kan forekomme kodningsfejl.

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

Denne kommando indstiller ;charset=utf-8 i Content-Type HTTP-header, når svaret sendes fra serveren til klientbrowseren, fortæller det browseren, at dette svar skal behandles som UTF-8 snarere end standard. Betydning kode som

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

er overflødig og bør ikke bruges. Det er også værd at bemærke, at der er en kommando for Content-Type HTTP-header også

Response.ContentType = "text/html"

gør det endnu mere overflødigt, end det allerede var.

Nyttige links



  1. SQL Server's Equivalent to Sleep():WAITFOR-erklæringen

  2. FORALL-erklæring med nedre og øvre grænse i Oracle-databasen

  3. Vis værdier fra en MySQL-databasetabel inde i en HTML-tabel på en webside

  4. kan jeg nulstille auto_increment-feltet i mySql?