Recientemente, la compañía tiene un proyecto japonés. Dado que solía usar el CMS chino desarrollado por sí mismo y no separaba los paquetes de idiomas, encontró un problema confuso que induce el dolor de cabeza durante el proceso de construcción y depuración del sitio web.
La razón del código confuso
Dado que el espacio de almacenamiento de cada codificación de caracteres es diferente, cuando se usan diferentes caracteres para leer datos, cuando el espacio de caracteres es demasiado pequeño, no se puede mostrar normalmente.
Por ejemplo, el conjunto de caracteres de caracteres chinos es generalmente GB2312. Si usa UTF-8 para forzar lectura y cambio los caracteres de GB2312, puede haber código confuso. Debido a que el espacio de almacenamiento del conjunto de caracteres de UTF-8 es mayor que GB2312, cuando se lee usando UTF-8, algunos caracteres GB2312 no existen en la codificación, y los caracteres inexistentes aparecerán naturalmente confusos. Para archivos estáticos, si la codificación de almacenamiento del archivo es inconsistente con la configuración de codificación (charset) en la página web, el código confuso se producirá debido a las razones anteriores.
Lo anterior es un análisis simple del problema confuso, que implica el apoyo de ASP para la internacionalización al resolver los problemas existentes.
Tres funciones involucradas: @Codepage, Response.Codepage, Session.Codepage
A continuación se muestra un pasaje de MSDN.
Setting@codepageExplicityAffectsliterAlstringsinasinglerponse.Response.CodepageAffectsDynamicstringsinAsinglerAponse, y session.CodepageAffectsDynamicstringsinAsinglerAponse.
Las tres funciones pueden establecer la codificación de ASP, donde @Codepage es equivalente al encabezado en PHP y debe emitirse al comienzo del documento.
En el IIS del sistema operativo chino, el valor predeterminado es GB2312, el valor del parámetro es: "936", y el documento japonés debe especificarse Codepage:
<%@CodePage = 932%>
Utilizamos esta función para establecer la codificación de documentos para el método de uso específico: http://www.cloudward.net/techlife/article.asp?id=490
No debería haber ningún problema ahora, ¿verdad? Vaya, el problema todavía existe. Teniendo en cuenta que todos los programas ASP de la compañía de SEO deben generar páginas estáticas. Las páginas generadas son ANSI predeterminadas de Windows, y todavía tienen códigos confusos que contienen caracteres japoneses. De esta manera, necesitamos una función ASP para generar archivos UTF-8 o codificados por japonés. Usamos el siguiente código para completarlo:
Setobjstream = server.createObject ("ADODB.Stream")
Sinbjstream
.Abierto
.Charset = "utf-8" // codificando, aquí puede cambiarlo a cualquier codificación
.Position = objstream.size
.WriteText = pencat // pencat son los datos escritos
.Savetofilesserver.mappath ("Patch/Flilename.html"), 2 // Generar ruta de archivo
.Cerca
Fin
Setobjstream = nada
El problema del código confuso después de la prueba se resolvió.