2009-03-08 14 views
5

में कनवर्ट करने के लिए कैसे करें मेरी आवश्यकता है जहां कोई क्लाइंट एएनएसआई एन्कोडिंग में फ़ाइल की आपूर्ति करेगा, लेकिन मेरा सिस्टम केवल यूनिकोड में फ़ाइल को सफलतापूर्वक पढ़ सकता है। तो मैं इस मुद्दे से कैसे निपटूं? मुझे पता है कि जब मैं फ़ाइल को "एन्कोड" करता हूं, तो यूनिकोड एन्कोडेड फ़ाइल को उठाया जाता है। क्लाइंट को हमारे अनुरोध का अनुपालन करना मुश्किल है। तो क्या इस फ़ाइल को यूनिकोड में कनवर्ट करने के लिए मेरे पास कोई बैच प्रोग्राम हो सकता है और फिर उठाया जा सकता है?* .txt फ़ाइल को यूनिकोड

+1

जब आप कहते हैं कि 'यूनिकोड', क्या आपका मतलब UTF8, UTF16, UTF32 करते हैं, या कुछ अन्य प्रतिनिधित्व? और यूनिकोड नहीं होने पर आप स्रोत कोड सेट को कैसे खोजेंगे? आप किस मंच पर हैं? –

+3

अधिकांश लोगों को लगता UTF-32 = यूनिकोड। मैं इस विचार को जनता के बीच इतना प्रचलित होने के लिए एमएस और उनके "इस रूप में सहेजें" विकल्प दोषी ठहराते हैं। एक डेवलपर (जो बेहतर जानते हैं चाहिए) साझा देखने के लिए दु: खी। –

+0

एमएस ज्यादातर यूसीएस -2 का उपयोग करता है, यूटीएफ -32 नहीं। – flodin

उत्तर

17

iconv कि कर सकते हैं:

Usage: iconv [OPTION...] [FILE...] 
Convert encoding of given files from one encoding to another. 

Input/Output format specification: 
    -f, --from-code=NAME  encoding of original text 
    -t, --to-code=NAME   encoding for output 

Information: 
    -l, --list     list all known coded character sets 

Output control: 
    -c       omit invalid characters from output 
    -o, --output=FILE   output file 
    -s, --silent    suppress warnings 
     --verbose    print progress information 

    -?, --help     Give this help list 
     --usage    Give a short usage message 
    -V, --version    Print program version 

Mandatory or optional arguments to long options are also mandatory or optional 
for any corresponding short options. 

For bug reporting instructions, please see: 
<http://www.gnu.org/software/libc/bugs.html>. 
4

तुम भी आसानी से अजगर में एन्कोडिंग परिवर्तित कर सकते हैं:

inf = open("infile.txt") 
data = inf.read().decode("latin1") 
inf.close() 

outf = open("outfile.txt", "w") 
outf.write(data.encode("utf-8")) 
outf.close() 
3

यहाँ एक Powershell समाधान

$lines = gc "pathToFile" 
$lines | out-file -enconding Unicode 
11

एनकोडिंग एएनएसआई और न ही यूनिकोड न तो कर रहे हैं है। आपको इनपुट फ़ाइल और यूनिकोड एनको के एएनएसआई कोडपेज को जानना होगा डिंग (UTF8 या UTF16 - ले या बीई) इससे पहले कि आप का सुझाव दिया उपकरणों में से एक का उपयोग कर सकते

+0

का उपयोग करता है इच्छा है कि मैं इसे और अधिक बढ़ा सकता हूं। अधिकांश विंडोज उपयोगकर्ताओं के लिए, "यूनिकोड" का अर्थ यूटीएफ 32 है। अधिकांश पश्चिमी यूरोपीय भाषाएं लैटिन 1 कोडपेज का उपयोग करती हैं, इसलिए अधिकांश लोग मानते हैं कि "एएनएसआई" एन्कोडिंग है (फिर से, मैं अपने शब्द उपयोग के लिए एमएस को "सेव एज़" विकल्प में दोष देता हूं)। –

+0

हम जोड़ सकते हैं कि नियंत्रण कक्ष-> क्षेत्रीय सेटिंग्स-> उन्नत विकल्प दिखाएंगे कि कौन सी एएनएसआई कोड-पेज स्थापित और उपयोग किए गए हैं। –

+3

विंडोज सिस्टम पर, "यूनिकोड" आमतौर पर यूटीएफ -16 का मतलब है। –

1

मैं कुछ ऊपर उल्लेख किया उपकरणों के माध्यम से चला गया, उनमें से कई कमांड लाइन की आवश्यकता होती है (जैसे iconv के रूप में)।

मुझे विंडोज में फ़ाइलों को कनवर्ट करने का एक आसान तरीका मिला।

  1. स्थापित Notepad2 (http://www.flos-freeware.ch/)। यह खुला स्रोत और मुफ्त है।

  2. ओपन फाइल एएनएसआई एन्कोडिंग,

  3. डबल क्लिक करें "एएनएसआई" तल पर शब्द,

  4. इस तरह के "UTF8"

  5. सहेजें फ़ाइल के रूप में नई एन्कोडिंग का चयन किया है।

यह काम करने के लिए केवल कुछ क्लिक हैं।

प्लस, आप बार-बार जांच करने के लिए सामग्री की आसानी से समीक्षा कर सकते हैं।

नोटपैड 2 नोटपैड पर विभिन्न लाभ हैं। हाइलाइट कोड, पूर्ववत करें/फिर आदि

: डी

+0

मैं यह देखने में असफल रहा कि नोटपैड 2 जीयूआई का उपयोग करके एन्कोडिंग को बदलना कमांड लाइन का उपयोग करने से आसान है, खासकर कई फाइलों के साथ? – ehambright

+0

जीयूआई कोई ब्रेनर नहीं है: एक्स कमांडलाइन निर्भरता की आवश्यकता है ... नोटपैड ++ बस क्लिक करें क्लिक करें ... – CodeFarmer

0

रूबी oneliner, Fwiw:

ruby -e 'STDOUT.write STDIN.read.force_encoding(Encoding::WINDOWS_1252).encode!(Encoding::UTF_8)' <infile.csv> outfile.csv 

यदि आपका इनपुट फ़ाइल भयानक है आप रूबी स्क्रिप्ट के मोर्चे पर कील STDIN.binmode; STDOUT.binmode; आवश्यकता हो सकती है।

संबंधित मुद्दे