В соответствии с форматом кодировки по умолчанию файла веб-страницы, созданного FSO, и методом преобразования в кодировку UTF-8, объект Adodb.Stream используется для записи функции, и файл веб-страницы UTF-8 успешно создается. Следующие функции используют объекты FSO, а расположение файла — FSO.ASP. Для объекта FSO существует только три атрибута кодировки файла. По умолчанию в системе используется Unicode, ASCII, и нам не нужен UTF-8. Поэтому обычно файлы, созданные с помощью объекта FSO в китайской системе, находятся в сети gb2312. формат кодировки страницы и кодировка UTF-8 не могут быть сгенерированы, поэтому латинские языки, такие как английский и китайский, могут отображаться нормально, но нелатинские языки, такие как русский, приводят к искажению страниц.
Скопируйте код кода следующим образом:
функция createfile(sfilename,scontent)
set fso=server.CreateObject(scripting.filesystemobject)
'set f1=fso.opentextfile(sfilename,2,true,-1) 'append=8 only write=2 Кодировка Unicode=-1
set f1=fso.opentextfile(sfilename,2,true)
f1.write(содержание)
f1.закрыть
установить fso=ничего
конечная функция
Выберите использование объекта ADODB.STREAM для замены объекта FSO, поскольку класс STREAM имеет методы LOADFROMFILE и SAVETOFILE, а также имеет важный атрибут CHARSET, которого нет у FSO. Следующая функция написана на Adodb.Stream и успешно генерирует файлы веб-страниц в формате UTF-8.
Скопируйте код кода следующим образом:
функция createfile(sfilename,scontent)
Установите objStream = Server.CreateObject(ADODB.Stream)
С объектным потоком
.Открыть
.Кодировка = utf-8
.Position = objStream.Size
.WriteText=scontent
.SaveToFile имя_файла,2
.Закрывать
Конец с
Установить objStream = Ничего
конечная функция
Для программ, использующих FSO, пока функция изменяется и имя функции остается неизменным, она может работать нормально, что более удобно и без проблем.
Если вы используете шаблон для создания файлов, вам также необходимо прочитать файл шаблона в кодировке UTF-8. В противном случае правильная кодировка файла будет выпущена в фоновом режиме, но файл шаблона будет считан с кодировкой FSO GB2312. страница шаблона написана на русском или других языках, отличных от латиницы, символы будут искажены. Функция модифицируется следующим образом:
Функция READFILE FSO, первоначально использовавшаяся
Скопируйте код кода следующим образом:
функция readfile(sfilename)
Установите fso=server.CreateObject(scripting.filesystemobject)
Установите f = fso.OpenTextFile(sfilename, 1, true)
если не f.AtEndOfStream, то readfile = f.readAll
Установить f=ничего
Установить fso=ничего
конечная функция
Замените функцию READFILE в ADODB.STREAM.
Обратите внимание, что в соответствии с фактическими потребностями удалите или сохраните параметр charset функции readfile (sfilename, charset).
Скопируйте код кода следующим образом:
Функция readfile(sfilename)
ж
Установите stm=server.CreateObject(adodb.stream)
stm.Type=2 'Чтение в этом режиме
stm.mode=3
stm.charset=utf-8
stm.open
stm.loadfromfile имя_файла
f=stm.readtext
stm.Закрыть
Установить stm=Ничего
readfile=f
Конечная функция
Что касается кодирования файлов и кодирования веб-страниц, обратитесь к подробному объяснению разницы между кодировкой набора символов и кодировкой файла.
Другие примеры программ
Скопируйте код кода следующим образом:
'------------------------------------------------
'Имя функции: ReadTextFile
'Функция: использовать объект AdoDb.Stream для чтения текстовых файлов в формате UTF-8.
'------------------------------------------------ - --
Функция ReadFromTextFile (FileUrl,CharSet)
ул. Дим
Установите stm=server.CreateObject(adodb.stream)
stm.Type=2 'Чтение в этом режиме
stm.mode=3
stm.charset=Набор символов
stm.open
stm.loadfromfile server.MapPath(FileUrl)
стр=stm.readtext
stm.Закрыть
Установить stm=ничего
ReadFromTextFile=str
Конечная функция
'------------------------------------------------
'Имя функции: WriteToTextFile
'Функция: использовать объект AdoDb.Stream для записи текстовых файлов в формате UTF-8.
'------------------------------------------------ - --
Sub WriteToTextFile (FileUrl, byval Str, CharSet)
Установите stm=Server.CreateObject(adodb.stream)
stm.Type=2 'Чтение в этом режиме
stm.mode=3
stm.charset=Набор символов
stm.open
stm.WriteText ул
stm.SaveToFile server.MapPath(FileUrl),2
stm.flush
stm.Закрыть
Установить stm=Ничего
Конец субтитра
Среди них обратите внимание на проблему пути в этой строке: stm.SaveToFile server.MapPath(FileUrl),2