다른 명령
잔글 개발노트 양식 일괄 적용 |
|||
| (같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
{{개발노트 | |||
|요약=UTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장 | |||
|핵심= | |||
|분야=Autoit | |||
|작성일=2024-10-24 | |||
}} | |||
== UTF-8 인코딩 파일을 ASCII 파일로 변환 함수 == | == UTF-8 인코딩 파일을 ASCII 파일로 변환 함수 == | ||
* UTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장 | * UTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장 | ||
| 75번째 줄: | 81번째 줄: | ||
UTF8ToASCII("example_utf8.txt", "example_ascii.txt") | UTF8ToASCII("example_utf8.txt", "example_ascii.txt") | ||
</source> | </source> | ||
[[category:autoit]] | |||
2026년 11월 12일 (목) 12:45 기준 최신판
DEVCAFE NOTE
AutoitUTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장
KEY POINTS · 핵심 정리
UTF-8 인코딩 파일을 ASCII 파일로 변환 함수
- UTF-8 파일의 내용을 읽어서 ASCII로 변환한 후 새 파일에 저장
list_alt내용을 입력하세요
list_alt내용을 입력하세요
- 주의사항
- 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")