मेरे परीक्षण में, किसी UTF-8
फ़ाइल को संपादित करने से एन्कोडिंग नहीं बदलती है और BOM बनी रहती है ( efbb bf
)। (nxml मोड)
खैर, यह के बीच भिन्न हो सकते हैं xml-mode
और nxml-mode
या, Emacs के संस्करण (24 बनाम 26)। यह नीचे की तरफ मोड कहता है।
यदि आप एक Emacs एक XML फ़ाइल को यूनिकोड ( UTF-16
छोटे एंडियन) में एन्कोड करते हैं , तो यह एन्कोडिंग को UTF-16
बड़े एंडियन में बदल देगा । शायद यही वह बात कर रहा है।
लेकिन BOM अभी भी वहाँ है, से बदल दिया fffe
है ffef
, और नल भी बाइट के बजाय विषम बाइट पर हैं। आप इसे हेक्साल-मोड में देख सकते हैं।
नमूना xml फ़ाइल। एन्कोडिंग विशेषता xml- मोड या nxml- मोड में सहेजने पर एन्कोडिंग को निर्देशित करती है। BOM की जाँच करने के लिए भविष्य के संस्करण को पैच किया जाएगा।
<?xml version="1.0" encoding="UTF-16"?>
<hi />
ऐसा लगता है जैसे Emacs लेता UTF-16
है UTF-16BE
, जबकि Windows इसे लेता है UTF-16LE
(BE और LE एन्कोडिंग विशेषता के लिए Emacs में काम नहीं करता है)। एन्कोडिंग विशेषता शायद यहाँ की समस्याओं के लिए महत्वपूर्ण है।
इसे पॉवरशेल में सहेजना इसे वापस utf-16le में बदल देगा।
[xml]$xml = get-content test.xml; $xml.save('test.xml')
एन्कोडिंग = "UTF-16LE" और एन्कोडिंग = "UTF-16BE" के साथ, बम को हटा दिया जाता है, जिससे फ़ाइल को emacs में पहचानने योग्य नहीं बनाया जाता है। यह एक पुष्ट बग है जिसे पैच किया जाएगा: http://lists.gnu.org/archive/html/bug-gnu-emacs/2019-05/msg00892.html