मैं एक अजीब चरित्र की पहचान करने की कोशिश कर रहा हूं जो मुझे उस फ़ाइल में मिला है जिसके साथ मैं काम कर रहा हूं:
$ cat file
�
$ od file
0000000 005353
0000002
$ od -c file
0000000 353 \n
0000002
$ od -x file
0000000 0aeb
0000002
फ़ाइल ISO-8859 एन्कोडिंग का उपयोग कर रही है और इसे UTF-8 में परिवर्तित नहीं किया जा सकता है:
$ iconv -f ISO-8859 -t UTF-8 file
iconv: conversion from `ISO-8859' is not supported
Try `iconv --help' or `iconv --usage' for more information.
$ iconv -t UTF-8 file
iconv: illegal input sequence at position 0
$ file file
file: ISO-8859 text
मेरा मुख्य प्रश्न यह है कि मैं od
यहाँ के आउटपुट की व्याख्या कैसे कर सकता हूँ ? मैं इस पृष्ठ का उपयोग करने की कोशिश कर रहा हूं जो मुझे विभिन्न चरित्र अभ्यावेदन के बीच अनुवाद करने देता है, लेकिन यह मुझे बताता है कि 005353
"हेक्स कोड पॉइंट" के रूप में, 卓
जो सही नहीं लगता है और 0aeb
"हेक्स कोड पॉइंट" के रूप में, ૫
जो फिर से गलत लगता है ।
इसलिए, मैं तीन विकल्पों में से किसी का उपयोग कैसे कर सकता हूं ( या 355
, ) यह पता लगाने के लिए कि वे किस चरित्र का प्रतिनिधित्व करने वाले हैं?005353
0aeb
और हाँ, मैंने यूनिकोड टूल के साथ कोशिश की, लेकिन यह एक वैध UTF वर्ण प्रतीत नहीं होता है:
$ uniprops $(cat file)
U+FFFD ‹�› \N{REPLACEMENT CHARACTER}
\pS \p{So}
All Any Assigned Common Zyyy So S Gr_Base Grapheme_Base Graph X_POSIX_Graph
GrBase Other_Symbol Print X_POSIX_Print Symbol Specials Unicode
अगर मैं यूनिकोड U + FFFD वर्ण का वर्णन समझता हूं, तो यह एक वास्तविक चरित्र नहीं है, बल्कि एक भ्रष्ट चरित्र के लिए एक प्लेसहोल्डर है। जो समझ में आता है क्योंकि फ़ाइल वास्तव में UTF-8 एन्कोडेड नहीं है।
ë
जब डेटा को किसी अन्य प्रोग्राम पर उपयोग किया जाता है तो मैं क्या देखता हूँ! लेकिन मैं यह कैसे जान सकता हूं? क्या यह मेरे द्वारा प्रदत्त डेटा में कहीं नहीं है? तुम्हें यह कैसे मिला? ओह, मैंने कोशिश की थी iconv
, -f ISO-8859
लेकिन उसने शिकायत की कि conversion from
ISO-8859 'समर्थित नहीं है'।
eb
है और उपेक्षा 0x
हेक्स सूचक या जो कुछ भी करता है। इस तरह की मेरी अज्ञानता गहरी है। क्या आप यह उत्तर देते हुए बता सकते हैं कि @StephenKitt?
iconv
सफल होना तय था; और / या आप इसे विकिपीडिया पर उदाहरण के लिए देख सकते थे। इसके लिए बहुत विशिष्ट एन्कोडिंग, fileformat.info/info/unicode/char/00eb/index.htm भी काम करता है (यूनिकोड 128-255 रेंज में ISO-8859-1 के बराबर है, हालांकि बेशक कोई UTF एन्कोडिंग इसके साथ संगत नहीं है। )।
iconv
शिकायत करता है क्योंकि आपने स्रोत वर्ण सेट निर्दिष्ट नहीं किया है, इसलिए यह आपके डिफ़ॉल्ट का उपयोग करता है जो संभवतः UTF-8 है।)