Недавно у компании есть японский проект. Поскольку он использовал китайский CMS, разработанный сам по себе и не отделял языковые пакеты, он столкнулся с искаженной проблемой, вызывающей головную боль во время процесса построения и отладки веб-сайта.
Причина искаженного кода
Поскольку пространство хранения каждого кодирования символов отличается, когда для чтения данных используются разные символы, когда пространство символов слишком мало, его нельзя отображать нормально.
Например, набор символов китайских иелок, как правило, GB2312. Если вы используете UTF-8, чтобы заставить прочитать и изменить символы GB2312, может быть искаженный код. Поскольку пространство хранения набора символов UTF-8 больше, чем GB2312, при чтении с использованием UTF-8 некоторые символы GB2312 не существуют в кодировании, а несуществующие символы, естественно, будут выглядеть искаженными. Для статических файлов, если кодирование хранилища файла не соответствует настройкам кодирования (charset) на веб -странице, искаженный код будет происходить по вышеуказанным причинам.
Выше приведено простой анализ искаженной проблемы, которая включает в себя поддержку ASP для интернационализации при решении существующих задач.
Три функции: @codepage, response.codepage, session.codepage
Ниже приведен отрывок из MSDN.
@CodepageexplicitylyaffectsliterStringsInasingleresponse.response.codepageaffectsdynamicstringsinasingleresponse и Session.codepageaffectsdynamicstringsinasinglerSponse.
Все три функции могут установить кодирование ASP, где @CodePage эквивалентно заголовке в PHP и должна быть выпущена в начале документа.
В IIS китайской операционной системы по умолчанию есть GB2312, значение параметра: «936», а японский документ должен быть указан.
<%@CodePage = 932%>
Мы используем эту функцию для установки кодирования документа для конкретного метода использования: http://www.cloudward.net/techlife/article.asp?id=490
Сейчас не должно быть проблем, верно? Вау, проблема все еще существует. Учитывая, что все программы ASP компании SEO должны создавать статические страницы. Сгенерированные страницы - все Windows по умолчанию ANSI, и у них все еще есть искаженные коды, содержащие японские символы. Таким образом, нам нужна функция ASP для генерации UTF-8 или кодируемых японских файлов. Мы используем следующий код для его завершения:
SetObjStream = server.createObject ("adodb.stream")
БЕЗ БИДЕР
.Открыть
.CHARSET = "UTF-8" // Кодирование, здесь вы можете изменить его на любое кодирование
.Position = objstream.size
.WriteText = pencat // pencat - это письменные данные
.Savetofilesserver.mappath ("patch/flilename.html"), 2 // Создание пути файла
.Закрывать
Энд
Setobjstream = ничего
Проблема искаженного кода после тестирования была решена.