몇 가지 이유 때문에 UTF8String의 원시 바이트 내용을 표시한다고 가정합니다.Delphi 2009 RawByteString vagaries
var
utf8Str : UTF8String;
begin
utf8Str := '€ąćęłńóśźż';
end;
(1)은하지 않습니다, 그것은 읽을 수있는 형태가 표시
memo1.Lines.Add(RawByteString(utf8Str));
// output: '€ąćęłńóśźż'
(2)이, 그러나, "작업"않습니다 - 병합주의 :
memo1.Lines.Add('x' + RawByteString(utf8Str));
// output: 'x€ąćęłńóśźż'
나는 UnicodeString에 대한 컴파일러의 강요가 RawByteString var 그대로. 그러나 왜 행동이 (2)에서 바뀌는가? -
(3) 낯선 사람이 아직이 연결 반전하자 : 나는 델파이에서 신기한 것을 좋아하는 캐릭터 유형에 독서와 나는 그들이 어떻게 작동하는지 이해 생각했습니다
memo1.Lines.Add(RawByteString(utf8Str) + 'x');
// output: '€ąćęłńóśźżx'
을하지만,이 퍼즐이다 .
Thans, Barry, 그건 좋은 생각입니다.연결은 단지 "이 버튼을 누르면 어떻게 될까?"실험 이었지만 실용적인 가치는 없었습니다. Delphi가 이와 같이 정의되지 않은 동작을 도입한다는 것을 알기는하지만 이상합니다. –