2012-07-03 8 views
30

मेरे पास ISO8859-15 में एन्कोडेड एक अरबी फ़ाइल है। मैं इसे यूटीएफ 8 में कैसे परिवर्तित कर सकता हूं?
मैंने iconv का उपयोग किया लेकिन यह मेरे लिए काम नहीं करता है।ISO8859-15 को UTF8 में कैसे परिवर्तित करें?

iconv -f ISO-8859-15 -t UTF-8 Myfile.txt 

मैं फ़ाइल संलग्न करना चाहता था, लेकिन मुझे नहीं पता कि कैसे।

+5

करता है 'iconv' एक त्रुटि संदेश मुद्रित, या उसे गलत तरीके परिवर्तित करता है? (संयोग से, आप * पिछले प्रश्नों के लिए प्राप्त किए गए अधिक उत्तरों * स्वीकार कर सकते हैं। उत्तरदाताओं की सराहना होगी।) – thb

+0

नहीं, यह कोई त्रुटि मुद्रित नहीं करता है। मेरा मतलब है कि यह फ़ाइल को गलत तरीके से परिवर्तित करता है। मैंने फ़ाइल के एन्कोडिंग की जांच की, और इसे आईएसओ -885 9-15 पाया। – Hakim

+0

आपने आईएसओ -88 9 5-15 होने के लिए इसे कैसे निर्धारित किया? – pizza

उत्तर

33

क्या यह हो सकता है कि आपकी फ़ाइल आईएसओ -885 9-15 एन्कोडेड न हो? आप फ़ाइल कमांड के साथ जांच करने के लिए सक्षम होना चाहिए:

file YourFile.txt

इसके अलावा, आप मूल फ़ाइल की एन्कोडिंग प्रदान किए बिना iconv का उपयोग कर सकते हैं:

iconv -t UTF-8 YourFile.txt

+0

फ़ाइल कमांड आपको यह बताने में सक्षम होगा कि फ़ाइल की सामग्री को समझने के लिए कौन सी एन्कोडिंग उपयुक्त है? –

+2

@ThorstenStaerk मुझे नहीं लगता कि यह करता है। मैन पेज यह कहता है: "यदि कोई एन्कोडिंग नहीं दी जाती है, तो डिफ़ॉल्ट वर्तमान लोकेल के वर्ण एन्कोडिंग से लिया गया है।" तो मेरा मानना ​​है कि मूल फ़ाइल के एन्कोडिंग प्रदान न करने के बारे में हाईकिंग की टिप्पणी गलत है। –

+0

फ़ाइल उपयोगिता हमेशा सही एन्कोडिंग का अनुमान नहीं लगाती है। फ़ाइल को अलग-अलग एन्कोडिंग के साथ खोलकर समझने योग्य होने पर आपको सामग्री का न्याय करने की आवश्यकता है। – code4j

16

मैं इस पाया मेरे लिए काम करने के लिए:

iconv -f ISO-8859-14 Agreement.txt -t UTF-8 -o agreement.txt 
+1

फाइल 'myfile.txt'' करते समय, यह '' ISO-8859'' देता है। इसलिए, मैंने आपके साथ प्रयास किया है ('' -14'' को छोड़कर)। यह दिखाता है कि 'आईएसओ -885 9 समर्थित नहीं है'। और अंत में मैंने '' -14'' '' ISO-8859-14'' के साथ जोड़ा है और काम किया है .. – Spike

+1

मैंने आमतौर पर आईएसओ -885 9 -1 देखा है –

2

मेरे मामले में, file कमांड एक गलत एन्कोडिंग बताता है, इसलिए मैंने सभी संभावित एन्कोडिंग के साथ कनवर्ट करने का प्रयास किया, और सही पाया।

इस स्क्रिप्ट को निष्पादित करें और परिणाम फ़ाइल जांचें।

for i in `iconv -l` 
do 
    echo $i 
    iconv -f $i -t UTF-8 yourfile | grep "hint to tell converted success or not" 
done &>/tmp/converted 
0

आप आईएसओ-8859-9 एन्कोडिंग का उपयोग कर सकते हैं:

iconv -f ISO-8859-9 Agreement.txt -t UTF-8 -o agreement.txt 
6

मैं ubuntu 14 और अन्य उत्तर जहां कोई मुझे

iconv -f ISO-8859-1 -t UTF-8 in.tex > out.tex 

के लिए काम कर रहा यह आदेश मिला है here

0

Iconv सिर्फ परिवर्तित टेक्स्ट को stdout पर लिखता है। आपको पैरामीटर के रूप में -o OUTPUTFILE.txt का उपयोग करना होगा या फ़ाइल में stdout लिखना होगा। (iconv -f x -t z filename.txt > OUTPUTFILE.txtयाiconv -f x -t z <filename.txt> OUTPUTFILE.txt कुछ iconv संस्करणों में)

Synopsis 

iconv -f encoding -t encoding inputfile 

Description 

The iconv program converts the encoding of characters in inputfile from one coded character set to another. 
**The result is written to standard output unless otherwise specified by the --output option.** 

--from-code, -f encoding 

Convert characters from encoding 

--to-code, -t encoding 

Convert characters to encoding 

--list 

List known coded character sets 

--output, -o file 

Specify output file (instead of stdout) 

--verbose 

Print progress information. 
संबंधित मुद्दे