FSO에서 생성된 웹 페이지 파일의 기본 인코딩 형식과 UTF-8 인코딩으로의 변환 방법에 따라 Adodb.Stream 개체를 사용하여 함수를 작성하고 UTF-8 웹 페이지 파일이 성공적으로 생성됩니다. 다음 함수는 FSO 개체를 사용하며 파일 위치는 FSO.ASP입니다. FSO 개체의 파일 인코딩 속성은 세 가지뿐입니다. 시스템 기본값은 유니코드, ASCII이며 원하는 UTF-8이 없습니다. 따라서 일반적으로 중국 시스템에서 FSO 개체를 사용하여 생성된 파일은 gb2312 웹에 있습니다. 페이지 인코딩 형식이며 UTF-8 인코딩을 생성할 수 없으므로 영어, 중국어 등의 라틴어는 정상적으로 표시될 수 있지만 러시아어 등의 비라틴어 언어는 페이지 깨짐 현상이 발생합니다.
다음과 같이 코드 코드를 복사합니다.
함수 createfile(sfilename,scontent)
fso=server.CreateObject(scripting.filesystemobject) 설정
'set f1=fso.opentextfile(sfilename,2,true,-1) 'append=8 전용 쓰기=2 유니코드 인코딩=-1
f1=fso.opentextfile(sfilename,2,true) 설정
f1.write(콘텐츠)
f1.닫기
fso=아무것도 설정하지 않음
종료 기능
STREAM 클래스에는 LOADFROMFILE 및 SAVETOFILE 메서드가 있고 FSO에는 없는 중요한 속성 CHARSET이 있으므로 ADODB.STREAM 개체를 사용하여 FSO 개체를 대체하도록 선택합니다. 다음 함수는 Adodb.Stream으로 작성되었으며 UTF-8 웹 페이지 파일을 성공적으로 생성합니다.
다음과 같이 코드 코드를 복사합니다.
함수 createfile(sfilename,scontent)
objStream = Server.CreateObject(ADODB.Stream) 설정
objStream 사용
.열려 있는
.Charset = utf-8
.위치 = objStream.Size
.WriteText=s콘텐츠
.SaveToFile 파일 이름,2
.닫다
끝
objStream = 없음으로 설정
종료 기능
FSO를 사용하는 프로그램의 경우, 함수가 수정되고 함수 이름이 변경되지 않으면 정상적으로 실행될 수 있으므로 더 문제가 없고 편리합니다.
템플릿을 사용하여 파일을 생성하는 경우 UTF-8 인코딩으로 템플릿 파일을 읽어야 합니다. 그렇지 않으면 올바른 파일 인코딩이 백그라운드에서 해제되지만 템플릿 파일은 FSO의 GB2312 인코딩으로 읽혀집니다. 템플릿 페이지가 러시아어 또는 기타 비라틴어 언어로 되어 있는 경우 잘못된 문자가 나타납니다. 함수는 다음과 같이 수정됩니다.
원래 사용된 FSO의 READFILE 함수
다음과 같이 코드 코드를 복사합니다.
함수 readfile(sfilename)
fso=server.CreateObject(scripting.filesystemobject) 설정
f = fso.OpenTextFile(sfilename, 1, true) 설정
f.AtEndOfStream이 아니면 readfile = f.readAll
f=아무것도 설정하지 않음
fso=아무것도 설정하지 않음
종료 기능
ADODB.STREAM의 READFILE 함수를 대체합니다.
실제 필요에 따라 함수 readfile(sfilename, charset) charset 매개변수 charset을 제거하거나 유지하십시오.
다음과 같이 코드 코드를 복사합니다.
함수 readfile(sfilename)
에프
stm=server.CreateObject(adodb.stream) 설정
stm.Type=2 '이 모드에서 읽기
stm.mode=3
stm.charset=utf-8
stm.open
stm.loadfromfile s파일 이름
f=stm.readtext
stm.닫기
stm=아무것도 설정하지 않음
읽기파일=f
기능 종료
파일 인코딩과 웹페이지 인코딩에 대해서는 문자 집합 Charset과 파일 인코딩 Encoding의 차이점에 대한 자세한 설명을 참조하시기 바랍니다.
기타 샘플 프로그램
다음과 같이 코드 코드를 복사합니다.
'------------------------------------------------
'함수 이름: ReadTextFile
'기능: AdoDb.Stream 개체를 사용하여 UTF-8 형식의 텍스트 파일을 읽습니다.
'------------------------------------------------ - --
함수 ReadFromTextFile(FileUrl,CharSet)
희미한 str
stm=server.CreateObject(adodb.stream) 설정
stm.Type=2 '이 모드에서 읽기
stm.mode=3
stm.charset=CharSet
stm.open
stm.loadfromfile 서버.MapPath(FileUrl)
str=stm.readtext
stm.닫기
stm=nothing으로 설정
ReadFromTextFile=str
기능 종료
'------------------------------------------------
'함수 이름:WriteToTextFile
'기능: AdoDb.Stream 개체를 사용하여 UTF-8 형식으로 텍스트 파일을 작성합니다.
'------------------------------------------------ - --
하위 WriteToTextFile(FileUrl, byval Str, CharSet)
stm=Server.CreateObject(adodb.stream) 설정
stm.Type=2 '이 모드에서 읽기
stm.mode=3
stm.charset=CharSet
stm.open
stm.WriteText 문자열
stm.SaveToFile 서버.MapPath(FileUrl),2
stm.플러시
stm.닫기
stm=아무것도 설정하지 않음
서브 끝
그중 stm.SaveToFile server.MapPath(FileUrl),2 줄의 경로 문제에 주의하세요.