डेल्फी 200 9 में टीबीइट्स को यूनिकोड स्ट्रिंग में घोषित बाइट्स की सरणी को परिवर्तित करने का सबसे अच्छा तरीका क्या है? मेरे विशेष मामले में, टीबीइट्स सरणी में पहले से ही यूटीएफ -16 एन्कोडेड डेटा है (प्रत्येक चार के लिए 2 बाइट)।टीबीइट्स (यूटीएफ -16) को एक स्ट्रिंग में बदलने का सबसे अच्छा तरीका क्या है?
चूंकि टीबीइट्स एक शून्य टर्मिनेटर स्टोर नहीं करता है, इसलिए निम्न केवल तभी काम करेगा जब सरणी के पास स्मृति में # 0 होता है।
MyString := string(myBytes);
यदि नहीं, तो स्ट्रिंग परिणाम (यह भी शायद एक पढ़ा उल्लंघन कितना समय याद में एक # 0 सामना करने के लिए ले लिया पर निर्भर करता है का कारण बन सकता) अंत में यादृच्छिक डेटा होगा।
यदि मैं ToBytes फ़ंक्शन का उपयोग करता हूं, तो यह 't' # 0'e '# 0' '# 0' नहीं '# 0 देता है, जो मैं नहीं चाहता हूं।
धन्यवाद ब्रूस का उपयोग कर समाप्त हो गया है, मैं अपने मूल प्रश्न संशोधित रूप में यह काफी विशेष नहीं था। टीबीइट्स सरणी utf16 डेटा के रूप में एन्कोड किया गया है, इसलिए ToBytes काम नहीं करता है। –
मीठा। 8 अक्षरों के रूप में सरल: स्ट्रिंगऑफ :) – Ampere