델파이 2010 에서는 기본 Character Set 이 유니코드로 지정되어 있어서,
Ansi 의 Hex 로 변경하려면 단순히 inttohex(Ord(string)) 이런 식으로 하면 안되더라고요.
예를 들어 '조조' 를 Hex 로 변경하면 'C1 B6 C1 B6' 으로 변환되야 정상인데 다른 Hex로 변환되더라고요.
한참 검색해보다가 해결 방법을 찾았습니다.
바로 'AnsiString' 타입을 이용하는건데요. 이걸 이용해서 2010 에서도 Ansi 를 쓸 수 있다더군요.
그래서 이걸 이용해 함수를 하나 제작했습니다.
function StrToAnsiHex(const str: string): string;
var
Index: integer;
temp: ansistring;
begin
Result := '';
temp := ansistring(str);
for Index := 1 to length(temp) do
Result := Result + inttohex(Ord(temp[Index]), 2);
end;
사용법)
var
temp : string;
begin
temp := StrToAnsiHex('조조') // temp = 'C1B6C1B6'
Ansi 의 Hex 로 변경하려면 단순히 inttohex(Ord(string)) 이런 식으로 하면 안되더라고요.
예를 들어 '조조' 를 Hex 로 변경하면 'C1 B6 C1 B6' 으로 변환되야 정상인데 다른 Hex로 변환되더라고요.
한참 검색해보다가 해결 방법을 찾았습니다.
바로 'AnsiString' 타입을 이용하는건데요. 이걸 이용해서 2010 에서도 Ansi 를 쓸 수 있다더군요.
그래서 이걸 이용해 함수를 하나 제작했습니다.
function StrToAnsiHex(const str: string): string;
var
Index: integer;
temp: ansistring;
begin
Result := '';
temp := ansistring(str);
for Index := 1 to length(temp) do
Result := Result + inttohex(Ord(temp[Index]), 2);
end;
사용법)
var
temp : string;
begin
temp := StrToAnsiHex('조조') // temp = 'C1B6C1B6'
'Delphi' 카테고리의 다른 글
[Delphi] File Binary 관련 함수 (1) | 2011.06.12 |
---|---|
[Delphi] Ansi String <-> Hex <-> Byte Array 함수 (1) | 2011.06.11 |
[Delphi] 델파이 초보들에게 매우 도움되는 사이트 소개 (0) | 2011.03.01 |
[Delphi] Instr, Mid 함수는 어디에...? (0) | 2011.03.01 |