मैं iconv लाइब्रेरी का उपयोग एक आधुनिक इनपुट स्रोत लीगेसी सिस्टम लेटिन 1 का उपयोग करता है करने के लिए UTF-8 का उपयोग करता है से इंटरफेस करने के रूप विघटित नहीं, उर्फ सीपी 1252 (आईएसओ -885 9 -1 के सुपरसेट)।iconv precomposed प्रपत्र क्यों परिवर्तित कर सकते हैं लेकिन 'ई' (UTF-8 से CP1252 के लिए)
इंटरफ़ेस हाल ही में फ्रांसीसी स्ट्रिंग "एडिशन" को बदलने में विफल रहा, जहां "É" को हेक्स 45 CC 81
के रूप में एन्कोड किया गया था। ध्यान दें कि गंतव्य एन्कोडिंग में "É" वर्ण होता है, जिसे C9
के रूप में एन्कोड किया गया है।
आइकनव "ए" को परिवर्तित करने में विफल क्यों होता है? मैंने जांच की है कि MacOS X 10.7.3 के साथ उपलब्ध iconv कमांड लाइन उपकरण का कहना है कि यह परिवर्तित नहीं हो सकता है, और PERL iconv मॉड्यूल भी विफल रहता है।
यह सब और अधिक परेशान है कि "É" वर्ण का पूर्वकल्पित रूप (C3 89
के रूप में एन्कोड किया गया) बस ठीक हो जाता है।
इस iconv साथ एक बग है या मैं कुछ याद किया?
ध्यान दें कि अगर मैं यूटीएफ -16 से कनवर्ट करने का प्रयास करता हूं तो भी मुझे एक ही समस्या है (जहां "ए" को 00 C9
के रूप में एन्कोड किया गया है या 00 45 03 01
विघटित)।
धन्यवाद। यह सवाल का जवाब नहीं देता है कि iconv गंतव्य एन्कोडिंग में प्रीकॉम्ज्ड कैरेक्टर को मैप क्यों करता है, लेकिन (स्वीकार्य रूप से अलग) विघटित चरित्र नहीं। क्यों न दोनों? पूर्व के बजाय उत्तरार्द्ध क्यों नहीं? रूपांतरण टूल/लाइब्रेरी के लिए, यह एक विफलता है, अगर कोई बग नहीं है। –
@ जीन-डेनिस मुइस, क्योंकि प्रीकंपोज़ड फॉर्म एक यूनिकोड चरित्र है, जो मैपिंग टेबल के अनुसार लक्ष्य एन्कोडिंग में प्रतिनिधित्व करने योग्य है, जबकि विघटित रूप दो यूनिकोड वर्ण हैं, और बाद वाला विंडोज -1252 (सीपी 1252) में प्रतिनिधित्व योग्य नहीं है। । इन रूपों के बीच पत्राचार चरित्र एन्कोडिंग के स्तर पर मौजूद नहीं है; यह एक उच्च स्तरीय प्रोटोकॉल मुद्दा है (और यह एक विशिष्ट प्रकार का एक समानता है, पहचान नहीं)। –
आप वास्तव में गलत हैं। एक विकृत चरित्र को अपने सीपी -1252 समकक्ष में मैप करने का कोई कारण नहीं है।चाहे "ए" एक प्रतिनिधित्व या दूसरे का उपयोग कर रहा हो, यह सीपी -1252 "ई" चरित्र में मैप किया जा सकता है - और चाहिए। –