पर अनुवाद करें, जहां तक सी स्रोत खोज रहे हैं, लेकिन मुझे यह फ़ंक्शन नहीं मिल रहा है, और मैं वास्तव में खुद को लिखना नहीं चाहता क्योंकि यह बिल्कुल वहां होना चाहिए।यूनिकोड (यूटीएफ -8) कोडपॉइंट को बाइट्स
विस्तारित करने के लिए: यूनिकोड पॉइंट को यू + ######## के रूप में दर्शाया जाता है - यह मुझे प्राप्त करना आसान है, मुझे क्या चाहिए, यह प्रारूप एक फ़ाइल में लिखा गया प्रारूप है (उदाहरण के लिए)। एक यूनिकोड कोडपॉइंट बाइट्स में अनुवाद करता है जैसे कि सही बाइट के 7 बिट पहले बाइट में लिखे जाते हैं, फिर अगले बिट्स के 6 बिट अगले बाइट में लिखे जाते हैं और इसी तरह। Emacs निश्चित रूप से जानता है कि यह कैसे करना है, लेकिन बाइट्स के अनुक्रम के रूप में इसे यूटीएफ -8 एन्कोडेड स्ट्रिंग के बाइट अनुक्रम प्राप्त करने के लिए कोई रास्ता नहीं है (प्रत्येक में 8 बिट्स हैं)।
get-byte
या multybite-char-to-unibyte
जैसे कार्य केवल वर्णों के साथ काम करते हैं जिन्हें 8 बिट्स का उपयोग करके प्रदर्शित किया जा सकता है। मुझे वही चीज़ चाहिए जो get-byte
करता है, लेकिन मल्टीबाइट वर्णों के लिए, ताकि एक पूर्णांक 0..256 के बजाय मुझे या तो पूर्णांक 0..256 या एक लंबा लंबा पूर्णांक 0..2^32 प्राप्त हो।
संपादित
बस मामले में किसी को भी इस पर बाद में की आवश्यकता होगी:
(defun haxe-string-to-x-string (s)
(with-output-to-string
(let (current parts)
(dotimes (i (length s))
(if (> 0 (multibyte-char-to-unibyte (aref s i)))
(progn
(setq current (encode-coding-string
(char-to-string (aref s i)) 'utf-8))
(dotimes (j (length current))
(princ (format "\\x%02x" (aref current j)))))
(princ (format "\\x%02x" (aref s i))))))))