function bintotext(varbindata,intdatasizeinbytes) ' as string
dim rs
const adfldlong=&h00000080
const advarchar=200
set rs=createobject("adodb.recordset")
rs.fields.append "txt",advarchar,intdatasizeinbytes,adfldlong
rs.open
rs.addnew
rs.fields("txt").appendchunk varbindata
bintotext=rs("txt").value
rs.close
set rs=nothing
end function
dim return,xmlhttp
set xmlhttp=server.createobject("microsoft.xmlhttp")
xmlhttp.open "get",url,false
xmlhttp.send
if xmlhttp.status=200 then
return=xmlhttp.responsebody
return=bintotext(return,len(return))
else
return="fail"
end if
set xmlhttp=nothing
dim fso,file
set fso=server.createobject("scripting.filesystemobject")
set file=fso.opentextfile(server.mappath(".") & "\" & filename,2,true)
file.write return
file.close
set fso=nothing
위 함수(bintotext, 출처 : http://blog.naver.com/icanfind?Redirect=Log&logNo=110004613812)를 사용하면 Binary로 받아온 Text를 UTF-8로 변환할 수 있다.
변환한 Text를 저장하면 끝.
처음에는 저장이 안되는 이유가 문자열이 너무 길어서 그런 줄 알았다.
left(str,100)하면 저장이 되었으니까.
나중에 한글 형식의 문제라는 걸 알고 얼마나 허탈했는지...
저장할 때 set file=fso.opentextfile(server.mappath(".") & "\" & filename,2,true,-1)을 사용해야 PHP에서 가져온 Text를 저장할 수 있지만
ULE라는 포맷으로 저장이 되어서 정작 브라우저에서는 UTF-8로 인식을 못한다.
그래서 열심히 뒤진 결과 Binary로 가져와서 Text로 변환하는 방법이 있어서 써 봤더니 정상적으로 UTF-8로 저장이 되었다.
'쓸만한 주저리' 카테고리의 다른 글
[asp] utf-8에서 urldecode 하기 (0) | 2010.11.29 |
---|---|
group by와 distinct를 같이 쓸 때 속도 향상법 (0) | 2010.11.25 |
윈도우7 설치후 업데이트가 안될 때 - v3lite 문제 (0) | 2010.10.06 |
Google의 HTML5 Presentation (0) | 2010.06.30 |
BC Card 이용 대금 명세서를 빙자한 Hacking 시도 (0) | 2010.06.23 |