Vor kurzem hat das Unternehmen ein japanisches Projekt. Da es früher das von selbst entwickelte chinesische CMS verwendet hat und die Sprachpakete nicht trennen, trat es beim Bau- und Debugging-Prozess auf Kopfschmerzen auf, das verstümmelte Problem stieß.
Der Grund für verstümmelten Code
Da der Speicherplatz der einzelnen Zeichenkodierung unterschiedlich ist, kann der Zeichen, wenn der Zeichenraum zu klein ist, nicht normal angezeigt.
Zum Beispiel ist der Charaktersatz chinesischer Zeichen im Allgemeinen GB2312. Wenn Sie UTF-8 verwenden, um die Zeichen von GB2312 zu erzwingen und zu ändern, kann es verstümmelter Code geben. Da der Speicherplatz des Charaktersatzes von UTF-8 größer als GB2312 ist, existieren beim Lesen mit UTF-8 einige Zeichen GB2312 in der Codierung nicht, und nicht existierende Zeichen erscheinen natürlich verstümmelt. Bei statischen Dateien tritt die Speichercodierung der Datei mit den Codierungseinstellungen (Charset) auf der Webseite nicht überein, dass der verstümmelte Code aus den oben genannten Gründen auftritt.
Das obige ist eine einfache Analyse des verstümmelten Problems, das die Unterstützung von ASP für die Internationalisierung bei der Lösung bestehender Probleme beinhaltet.
Drei beteiligte Funktionen: @CodePage, response.CodePage, Session.CodePage
Unten ist eine Passage von MSDN.
Seting@codepageExpliclyaffectSliteralStinasinglerePonse.Response.CodepageapeffectSdyNamicStringSinasinglerePonse und Session
Alle drei Funktionen können die Codierung von ASP festlegen, wobei @CodePage dem Header in PHP entspricht und zu Beginn des Dokuments ausgestellt werden muss.
In den IIs des chinesischen Betriebssystems ist der Standard von GB2312, der Parameterwert lautet: "936", und das japanische Dokument muss angegeben werden: Codepage:
<%@Codepage = 932%>
Wir verwenden diese Funktion, um die Dokumentcodierung für die spezifische Verwendungsmethode festzulegen: http://www.cloudward.net/techlife/article.asp?id=490
Es sollte jetzt kein Problem geben, oder? Wow, das Problem besteht immer noch. In Anbetracht der Tatsache, dass alle ASP -Programme des SEO -Unternehmens statische Seiten generieren müssen. Die generierten Seiten sind alle Windows 'Standard ANSI und sie haben immer noch verstümmelte Codes, die japanische Zeichen enthalten. Auf diese Weise benötigen wir eine ASP-Funktion, um UTF-8- oder Japanisch-kodierte Dateien zu generieren. Wir verwenden den folgenden Code, um ihn zu vervollständigen:
SetObjstream = server.createObject ("adodb.stream")
Ohne Bystream
.Offen
.Charset = "UTF-8" // Codierung, hier können Sie es in jede Codierung ändern
.Position = objstream.size
.WritETEXT = Pencat // Pencat sind die schriftlichen Daten
.SavetoFilesserver.Mappath ("Patch/Flilename.html"), 2 // Dateipfad generieren
.Schließen
Endwith
SetObjstream = nichts
Das Problem des verstümmelten Codes nach dem Testen wurde gelöst.