ÇÔ¼ö/ÇÁ·Î½ÃÁ® ÆĶó¹ÌÅÍ¿¡¼µµ rawbytestring ij½ºÆÃÀÌ °¡´ÉÇϵµ·Ï Çß½À´Ï´Ù.
¾Æ¸¶ ÀÌ ÆÐÄ¡´Â ¹®ÀÚ¿ ó¸® ±ÔÁ¤¿¡ ¸ÂÁö ¾Ê´Â´Ù¸ç, ¹Þ¾ÆµéÀÌÁö ¾ÊÀ»°Í °°½À´Ï´Ù.
rawbytestring º¯¼ö¸¦ »ç¿ëÇϰųª ŸÀÔij½ºÆÃÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é, ÄÄÆÄÀÏ·¯¿Í rtl¿¡¼ ó¸®ÇÏ´Â ¹æ¹ýÀº ¿ø·¡ ¹æ¹ý°ú º¯È°¡ ¾ø½À´Ï´Ù.
´ëÃæ ÀÌ·¸°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
program project2;
uses sysutils;
var s1 : string; sw, sh : widestring; s2, s3, s4, s5, dumps : string; s : string; i : integer;
function test(s1, s2:string):string; begin result:=s1+s2; end;
procedure dumpstrings(const s:string); begin dumps:=''; for i:=1 to Length(s) do begin dumps:=dumps+' '+IntToHex(Byte(s[i]),2); end; writeln(s,' ',dumps); end;
begin s1:='1234'; s2:='Grö©¬e ÄÜÖ'; s3:='abcd'; s5:='ÇѱÛ'; sw:=UTF8Decode(s2); s2:=UTF8Encode(sw); s4:=UTF8Encode(sw); sh:=utf8decode(s5); s5:=#199#209; //s5:=ansitoutf8(s5); s :=rawbytestring(s1+s2)+rawbytestring(s3+s4)+rawbytestring(s4+s5); dumpstrings(s); writeln('ok'); s :=rawbytestring(s1+s2+s3+s4+s5)+rawbytestring(s1+s2+s3+s4+s5)+utf8string(s1+s2+s3+s4+s5); dumpstrings(s); writeln('ok'); s := test(s1 , s4); dumpstrings(s); writeln('fail'); dumpstrings(s3+s2); writeln('fail'); s := test(rawbytestring(s3+s2),s2+s3); dumpstrings(s); writeln('ok,fail'); dumpstrings(test(rawbytestring(s3+s2),s2+s3+rawbytestring(s2+s3))); writeln('ok,fail,ok'); readln; end.
|