메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Autoit utf8 ansi 파일 포맷 변경

데브카페

UTF-8 인코딩 파일을 ASCII 파일로 변환 함수

  • UTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장
 list_altUTF8ToASCII 함수
  • UTF-8 파일을 읽고 ASCII 파일로 변환
  • UTF-8 파일에 **BOM(Byte Order Mark)**이 있으면 제거
  • UTF-8 데이터를 ASCII로 변환한 후 새로운 파일에 저장

 list_altStringToASCII 함수
  • 문자열 내 비-ASCII 문자는 **?**로 대체
  • ASCII 범위(0~127)에 해당하는 문자만 유지
  • 파일 열기 모드
    • FileOpen($file, 16): 바이너리 모드로 파일 열기.
    • FileOpen($file, 2): 쓰기 모드로 파일 열기.

  • 주의사항
    • UTF-8 파일에 한글 등 비-ASCII 문자가 포함된 경우, 변환 후 해당 문자는 ?로 표시
    • 주로 라틴 문자 중심의 UTF-8 파일을 ASCII로 변환할 때 유용

함수 코드 (AutoIt)

Func UTF8ToASCII($utf8File, $asciiFile)
    ; UTF-8 파일 읽기 (바이너리 모드)
    Local $hFile = FileOpen($utf8File, 16) ; 16 = 바이너리 모드
    If $hFile = -1 Then
        MsgBox(16, "Error", "UTF-8 파일을 열 수 없습니다: " & $utf8File)
        Return False
    EndIf

    Local $utf8Content = FileRead($hFile) ; UTF-8 데이터 읽기
    FileClose($hFile)

    ; BOM 제거 (있을 경우)
    If BinaryMid($utf8Content, 1, 3) = Binary("0xEFBBBF") Then
        $utf8Content = BinaryMid($utf8Content, 4)
    EndIf

    ; UTF-8 문자열을 ASCII로 변환 (문자 매핑)
    Local $asciiContent = BinaryToString($utf8Content, 4) ; 4 = UTF-8 모드
    $asciiContent = StringToASCII($asciiContent)

    ; ASCII 파일로 저장
    $hFile = FileOpen($asciiFile, 2) ; 2 = 쓰기 모드
    If $hFile = -1 Then
        MsgBox(16, "Error", "ASCII 파일을 생성할 수 없습니다: " & $asciiFile)
        Return False
    EndIf

    FileWrite($hFile, $asciiContent)
    FileClose($hFile)

    MsgBox(64, "Success", "파일 변환이 완료되었습니다.")
    Return True
EndFunc

Func StringToASCII($str)
    ; ASCII 문자만 유지, 나머지는 '?'로 변환
    Local $ascii = ""
    For $i = 1 To StringLen($str)
        Local $char = StringMid($str, $i, 1)
        If Asc($char) < 128 Then
            $ascii &= $char
        Else
            $ascii &= "?" ; 비 ASCII 문자는 '?'로 대체
        EndIf
    Next
    Return $ascii
EndFunc

; 사용 예제
UTF8ToASCII("example_utf8.txt", "example_ascii.txt")

Comments