윈도우 프로그램을 작성하다 보면 한글 처리가 걸리는 경우가 있습니다. 자주 경험하는데요, 프로그램을 다 짰다 싶은데 생각지도 않은 한글에서 에러가 발생합니다. 그래서 문자열을 처리할 때는 항상 한글을 넣어 검증합니다. 라자루스에서 Ansi to UTF8 또는 UTF8 to Ansi 변환 방법은 아래와 같습니다.
라자루스 UTF8 to Ansi
uses
lazutf8;
strAnsi := lazutf8.UTF8ToWinCP( strUtf8);
uses절에 lazutf8 유닛 추가를 잊지 마세요.
라자루스 Ansi to UTF8
uses
lazutf8;
SetCodePage(RawByteString( strAnsi), 949, FALSE);
strUtf8 := AnsiToUtf8( strAnsi);
UTF8ToWinCP()와는 달리 언어코드를 지정해 주어야 주어야 하는데요, 그래서 저 같은 경우 LocalAnsiToUtf8() 함수를 만들어서 사용합니다.
uses
lazutf8;
function LocalAnsiToUtf8( strAnsi: string): string;
begin
SetCodePage( RawByteString( strAnsi), 949, FALSE);
result := AnsiToUtf8( strAnsi);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := LocalAnsiToUtf8( strAnsi);
end;
역시 uses절에 lazutf8 유닛을 추가해야 합니다.
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
undefined reference to symbol 'ceil@@GLIBC_2.4' 해결 방법은? (0) | 2020.06.16 |
---|---|
C언어 메모리를 0으로 채움 bzero() 함수 (0) | 2020.03.18 |
C언어 파일로 서식에 맞추어 문자열 출력 함수 dprintf() (0) | 2020.03.18 |