charset

utf-8에서 파일 쓰기

utf-8 에서 파일을 만들면 기본적으로 unicode 가 생성되는데 이경우 unicode는 엄밀히 말해 utf-16이라서 asp에서 처리가 되지 않는다. 이경우 파일작성 요령입니다.

Sub makeFile_adminInfo(strText, FILEPATH)
  if utf-8 이면 then
    Call util.WriteToFile(strText , FILEPATH)
  else ascii이면
    Dim FSO, ForWriting, FILE
    SET FILE = FSO.createTextFile(FILEPATH, ForWriting)
    SET FSO   = Server.CreateObject("Scripting.FileSystemObject")
    IF FSO.fileExists(FILEPATH) THEN FSO.DeleteFile(FILEPATH)	
    FILE.WriteText strText		
    FILE.CLOSE
    Set FSO	= Nothing : Set FILE = Nothing
    ''On Error Resume Next
  end if
End Sub	


Sub WriteToFile (strText, strFile)''utf-8에서 사용시
  Dim Stream
  Set Stream = CreateObject ("ADODB.Stream")
  With Stream
  .Open
  .CharSet = "utf-8"
  .WriteText strText
  .SaveToFile strFile, 2
  End With
  Set Stream = Nothing
End Sub

euc-kr 을 utf-8로 utf-8 을 euc-kr 로 바꾸기

utf-8 을 ecu-kr

이것은 utf-8을 자바스크립트로 escape 시켜서

<%@LANGUAGE="VBSCRIPT" CODEPAGE="949"%>
<% Response.CharSet = "euc-kr" %> 
<%
bb = unescape(Request("bb"))  
sample = Request("sample") 
sample1 = unescape(Request("sample1"))  
Response.Write bb & "<br>"
Response.Write sample & "<br>"
Response.Write sample1 & "<br>"
%>


<% @LANGUAGE='VBSCRIPT' CODEPAGE='65001' %>
<% Response.CharSet = "utf-8" %>
<script>
function checkForm(f){
	f.sample1.value = escape(f.sample.value);

}
</script>
<form Method="POST" name="user" action="kor8.asp" onsubmit="return checkForm(this)">
<input type="hidden" name="bb" value="<%=escape("가나다라마바사")%>"> 

<input type="image" src="zzzzzzz.jpg">
<input type="hidden" name="sample1" id="textfield" />
<input type="text" name="sample" id="textfield" />
</form>

euc-kr 을 utf-8로

이것은 걍 함수를 사용

Public Function toUTF8(szSource As String) As String
    On Error GoTo ErrHandler

    Dim szChar As String
    Dim WideChar As Long
    Dim nLength As Integer
    Dim i As Integer
    
    nLength = Len(szSource)
    For i = 1 To nLength
        szChar = Mid(szSource, i, 1)

        If Asc(szChar) < 0 Then
            WideChar = CLng(AscB(MidB(szChar, 2, 1))) * 256 + AscB(MidB(szChar, 1, 1))
            
            If (WideChar And &HFF80) = 0 Then
                toUTF8 = toUTF8 & "%" & Hex(WideChar)
            ElseIf (WideChar And &HF000) = 0 Then
                toUTF8 = toUTF8 & _
                            "%" & Hex(CInt((WideChar And &HFFC0) / 64) Or &HC0) & _
                            "%" & Hex(WideChar And &H3F Or &H80)
            Else
                toUTF8 = toUTF8 & _
                            "%" & Hex(CInt((WideChar And &HF000) / 4096) Or &HE0) & _
                            "%" & Hex(CInt((WideChar And &HFFC0) / 64) And &H3F Or &H80) & _
                            "%" & Hex(WideChar And &H3F Or &H80)
            End If
        Else
            toUTF8 = toUTF8 + szChar
        End If
    Next
    Exit Function
    
ErrHandler:
    toUTF8 = ""
End Function

utf8.asp

<% @LANGUAGE='VBSCRIPT' CODEPAGE='65001' %>
<% Response.CharSet = "utf-8" %>
<form Method="POST" name="user" action="kor8.asp">
<input type="hidden" name="bb" value="<%=escape("가나다라마바사")%>"> 
<input type="image" src="zzzzzzz.jpg"></form>

kor8.asp<%@LANGUAGE="VBSCRIPT" CODEPAGE="949"%>
<% Response.CharSet = "euc-kr" %> <%bb = unescape(Request("bb"))  
Response.Write bb & "<br>"%>

utf-8 <--> euc-kr 변경

  1. 페이지 속성 변경(asp)
UTF-8 : <%@  codepage="65001" language="VBScript" %>
EUC-KR : <%@  codepage="949" language="VBScript" %>
  1. html 메타 변경
UTF-8 : <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
EUC-KR : <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
  1. Session.CodePage
UTF-8 : Session.CodePage = 65001
EUC-KR : Session.CodePage = 949
  1. Response.ChaRset
UTF-8 :Response.ChaRset = "utf-8" 

참조 : 대표적인 텍스트 인코딩 코드 페이지 값

  • 0 : ANSI (기본값)
  • 949 : 한국어 (EUC-KR)
  • 65001 : 유니코드 (UTF-8)
  • 65535 : 유니코드 (UTF-16)
  1. 상기 처럼 마무리 짓고 아래 툴을 이용하여 텍스트를 변경한다.
모든 텍스트 변경 프로그램
http://www.shop-wiz.com/wizboard.php?BID=asp3&GID=root&mode=view&UID=45
  1. 데이타 베이스 변경
데이타 베이스는 현재 varchar, text.. 등으로 된것을 nvarchar, ntext.. 등으로 변경
  1. 데이타 입력시 Insert [into] table_name [(column_list)] Value N[data_value]
    처럼 N을 붙혀준다.

  2. upload componet 변경 업로드 컴포넌트 중 일부(사이트 겔럭시) 같은 경우 한글 지원이 되지 않는다. 그러므로 다른 업로드 컴포넌트를 선택해야 한다.

평점을 남겨주세요
평점 : 2.5
총 투표수 : 1