글자 형식을 변경하는 방법에 대하여 알아보겠습니다. Autoit 편집기의 도움말에서 BinaryToString 의 Example 를 가져오면 다음과 같은 내용을 확인 할 수 있습니다.
해당 Script를 실행하면 4번의 대화상자가 나타나며 일부 글자는 깨져서 표시 되는 것을 확인 할 수 있습니다.
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Example()
Func Example()
; Define the string that will be converted later.
; NOTE: This string may show up as ?? in the help file and even in some editors.
; This example is saved as UTF-8 with BOM. It should display correctly in editors
; which support changing code pages based on BOMs.
Local Const $sString = "Hello - 你好"
; Temporary variables used to store conversion results. $dBinary will hold
; the original string in binary form and $sConverted will hold the result
; afte it's been transformed back to the original format.
Local $dBinary = Binary(""), $sConverted = ""
; Convert the original UTF-8 string to an ANSI compatible binary string.
$dBinary = StringToBinary($sString)
; Convert the ANSI compatible binary string back into a string.
$sConverted = BinaryToString($dBinary)
; Display the resulsts. Note that the last two characters will appear
; as ?? since they cannot be represented in ANSI.
DisplayResults($sString, $dBinary, $sConverted, "ANSI")
; Convert the original UTF-8 string to an UTF16-LE binary string.
$dBinary = StringToBinary($sString, $SB_UTF16LE)
; Convert the UTF16-LE binary string back into a string.
$sConverted = BinaryToString($dBinary, $SB_UTF16LE)
; Display the resulsts.
DisplayResults($sString, $dBinary, $sConverted, "UTF16-LE")
; Convert the original UTF-8 string to an UTF16-BE binary string.
$dBinary = StringToBinary($sString, $SB_UTF16BE)
; Convert the UTF16-BE binary string back into a string.
$sConverted = BinaryToString($dBinary, $SB_UTF16BE)
; Display the resulsts.
DisplayResults($sString, $dBinary, $sConverted, "UTF16-BE")
; Convert the original UTF-8 string to an UTF-8 binary string.
$dBinary = StringToBinary($sString, $SB_UTF8)
; Convert the UTF8 binary string back into a string.
$sConverted = BinaryToString($dBinary, $SB_UTF8)
; Display the resulsts.
DisplayResults($sString, $dBinary, $sConverted, "UTF8")
EndFunc ;==>Example
; Helper function which formats the message for display. It takes the following parameters:
; $sOriginal - The original string before conversions.
; $dBinary - The original string after it has been converted to binary.
; $sConverted- The string after it has been converted to binary and then back to a string.
; $sConversionType - A human friendly name for the encoding type used for the conversion.
Func DisplayResults($sOriginal, $dBinary, $sConverted, $sConversionType)
MsgBox($MB_SYSTEMMODAL, "", "Original:" & @CRLF & $sOriginal & @CRLF & @CRLF & "Binary:" & @CRLF & $dBinary & @CRLF & @CRLF & $sConversionType & ":" & @CRLF & $sConverted)
EndFunc ;==>DisplayResults
내용에 주석이 많기 때문에 주석을 잘 참고 하신다면 별도의 설명이 없이도 사용이 가능합니다. 그러므로 여기서는 해당 내용의 사용 방법에 대하여 짧게 설명드리고자 합니다.
첫번째 대화상자가 표시되는데 필요한 Script는 다음 5줄 입니다.
Local Const $sString = "Hello - 你好"
Local $dBinary = Binary(""), $sConverted = ""
$dBinary = StringToBinary($sString)
$sConverted = BinaryToString($dBinary)
DisplayResults($sString, $dBinary, $sConverted, "ANSI")
먼저 첫번째 입력 값은 StringToBinary를 통해 변환되는데 한번 사용 되며, 그 후 DisplayResults에 결과 확인용으로 사용 됩니다. ( 하단 이미지 참고 )
두번째 값은 Binary로 선언된 변수에 StringToBinary 로 첫번째 글자를 변환한 값 입니다. 대화상자에서 중간에 영어와 숫자로 나타나는 값입니다.
마지막 값은 Binary값을 다시 String로 고쳐서 확인하는 값입니다. 첫번째 대화상자에서는 일부 한자가 손상되어 표시되는 것을 확인 할 수 있습니다.
Binary로 변환하는 작업은 RPA에서 다국어를 변활할때 유용한 기능입니다. 영문 OS등 다양한 OS 환경에서는 특정 언어가 정상적으로 표시되지 않는 경우가 있습니다. 예를들어 영문 OS 에서 한글을 INI 파일에 기록하면 글자가 손상되어 기록 됩니다. 이러한 경우를 막기위해 Binary로 변환하여 기록하고 다시 변환하여 사용 한다면 RPA 작업 시 보다 안정적으로 사용이 가능해 집니다.
'RPA 만들기 - 함수 사용법' 카테고리의 다른 글
[ Autoit ] 화면 색상 변화 인식하기 (0) | 2020.10.02 |
---|---|
[ Autoit ] 중복 실행 방지 코드 만들기 (0) | 2020.10.02 |
[ Autoit ] 현재 마우스 커서 상태 구하기 (0) | 2020.09.21 |
[ Autoit ] 마우스 컨트롤 하기 #1 - 기본편 (0) | 2020.09.20 |
[ Autoit ] Au3Info.exe 를 활용하여 외부 프로그램 정보 얻기 (0) | 2020.09.17 |