2009-07-29 13 views
6

मैं नेटवर्क है, जो की तरह दिखता है के माध्यम से एक यूनिकोड संदेश प्राप्त कर रहा हूँ:सी # यूनिकोड पढ़ें?

74 00 65 00 73 00 74 00 3F 00

मैं एक BinaryReader उपयोग कर रहा हूँ मेरी सॉकेट से धारा को पढ़ने के लिए, लेकिन समस्या यह है कि यह "रीडवाइडस्ट्रिंग" फ़ंक्शन, या इसके समान कुछ नहीं पेश करता है। किसी को भी यह विचार है कि इससे कैसे निपटें?

धन्यवाद!

उत्तर

14

सरल कोशिश कर सकते हैं!

string str = System.Text.Encoding.Unicode.GetString(array); 

जहां array बाइट्स की आपकी सरणी है।

+0

धन्यवाद! यह काम कर रहा है, दूसरों के लिए भी धन्यवाद। –

7

सी # में स्ट्रिंग्स डिफ़ॉल्ट रूप से यूनिकोड हैं।

string converted = Encoding.Unicode.GetString(data); 

जहां डाटा एक बाइट [] सरणी अपने यूनिकोड डेटा वाली है की कोशिश करो। यदि आपका डेटा बड़ा एंडियन है, तो आप

string converted = Encoding.BigEndianUnicode.GetString(data); 
+0

प्रत्येक बाइट प्रत्येक 2 के बराबर 0 है, यह अपेक्षाकृत असंभव है कि यह utf-8 है। –

5

आप एक StreamReader इस तरह इस्तेमाल कर सकते हैं:

StreamReader sr = new StreamReader(stream, Encoding.Unicode); 

अपनी स्ट्रीम केवल कुछ हिस्से की रेखाएं हों, तो उसके बाद StreamReaderBinaryReader की तुलना में अधिक उपयुक्त है। यदि आपकी स्ट्रिंग बाइनरी डेटा के अंदर एम्बेडेड है तो Encoding.GetString विधि का उपयोग करके स्ट्रिंग को डीकोड करना बेहतर है क्योंकि अन्य ने

संबंधित मुद्दे