Récemment, l'entreprise a un projet japonais. Puisqu'il utilisait l'habitude d'utiliser le CMS chinois développé par lui-même et n'a pas séparé les packages de langue, il a rencontré un problème brouillé induisant les maux de tête pendant le processus de construction et de débogage du site Web.
La raison du code brouillé
Étant donné que l'espace de stockage de chaque encodage de caractères est différent, lorsque différents caractères sont utilisés pour lire les données, lorsque l'espace des caractères est trop petit, il ne peut pas être affiché normalement.
Par exemple, le jeu de caractères des caractères chinois est généralement GB2312. Si vous utilisez UTF-8 pour forcer la lecture et changer les caractères de GB2312, il peut y avoir du code brouillé. Étant donné que l'espace de stockage du jeu de caractères de l'UTF-8 est supérieur à GB2312, lors de la lecture en utilisant UTF-8, certains caractères GB2312 n'existent pas dans le codage et les caractères inexistants apparaîtront naturellement brouillé. Pour les fichiers statiques, si le codage de stockage du fichier est incompatible avec les paramètres d'encodage (charse) dans la page Web, le code brouillé se produira pour les raisons ci-dessus.
Ce qui précède est une analyse simple du problème brouillé, qui implique le soutien de l'ASP à l'internationalisation lors de la résolution des problèmes existants.
Trois fonctions impliquées: @codepage, réponse.codepage, session.codepage
Vous trouverez ci-dessous un passage de MSDN.
Setting@codepageexplicite affectsliteralstringsInasingleResponse.Response.codepageAffectSdynynamicstringSinasingleResponse et session.codepageAffectSdynynamicsTringSinasingleResponse.
Les trois fonctions peuvent définir le codage d'ASP, où @CodePage est équivalent à l'en-tête en PHP et doit être émis au début du document.
Dans l'IIS du système d'exploitation chinois, la valeur par défaut est GB2312, la valeur des paramètres est: "936", et le document japonais doit être spécifié de codepage:
<% @ Codepage = 932%>
Nous utilisons cette fonction pour définir l'encodage des documents pour la méthode d'utilisation spécifique: http://www.cloudward.net/techlife/article.asp?id=490
Il ne devrait pas y avoir de problème maintenant, non? Wow, le problème existe toujours. Considérant que tous les programmes ASP de la société de référencement doivent générer des pages statiques. Les pages générées sont toutes ANSI par défaut de Windows, et elles ont toujours des codes brouillé contenant des caractères japonais. De cette façon, nous avons besoin d'une fonction ASP pour générer des fichiers UTF-8 ou en japonais. Nous utilisons le code suivant pour le terminer:
SetObjstream = server.createObject ("adodb.stream")
Sansbjstream
.Ouvrir
.Charset = "UTF-8" // Encodage, ici vous pouvez le changer en tout encodage
.Position = Objstream.Size
.WriteText = Pencat // Pencat est les données écrites
.SavetoFileSserver.Mappath ("Patch / Flilename.html"), 2 // Générer un chemin de fichier
.Fermer
Fin
SetObjstream = rien
Le problème du code brouillé après le test a été résolu.