다른 명령
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")