मान लीजिए कि कुछ प्रतिकूल कारणों से आप यूटीएफ 8 स्ट्रिंग की कच्ची बाइट सामग्री प्रदर्शित करना चाहते हैं।डेल्फी 200 रॉबेटस्ट्रिंग अनियमित
var
utf8Str : UTF8String;
begin
utf8Str := '€ąćęłńóśźż';
end;
(1) यह ऐसा नहीं करता है, यह प्रदर्शित करता है पठनीय रूप:
memo1.Lines.Add(RawByteString(utf8Str));
// output: '€ąćęłńóśźż'
(2) लेकिन यह करता है "काम" - संयोजन पर ध्यान दें:
memo1.Lines.Add('x' + RawByteString(utf8Str));
// output: 'x€ąćęłńóśźż'
मैं समझता हूं (1), यद्यपि युनिकोडस्ट्रिंग के लिए कंपाइलर के मजबूर सहक्रिया को कभी भी रॉबेटस्ट्रिंग var प्रदर्शित करने से रोकना प्रतीत होता है जैसा है। हालांकि, व्यवहार क्यों बदलता है (2)? -
(3) अजनबी अभी भी के संयोजन रिवर्स करते हैं:
memo1.Lines.Add(RawByteString(utf8Str) + 'x');
// output: '€ąćęłńóśźżx'
मैं डेल्फी में फै़शनवाला स्ट्रिंग प्रकार पर पढ़ रहा है और सोचा था कि मैं समझ गया कि वे कैसे काम करते हैं, लेकिन यह एक पहेली है ।
थान, बैरी, जो अच्छी समझ में आता है।कॉन्सटेनेशन सिर्फ एक "व्यावहारिक मूल्य के कुछ भी नहीं," मैं इस बटन को दबाता हूं "प्रयोग था। अजीब हालांकि डेल्फी को इस तरह के एक अपरिभाषित व्यवहार को पेश करने के लिए अजीब - पहले कभी भी उनमें से कई नहीं थे। –