2008-12-18 6 views
7

में कनवर्ट करें मेरे पास एक टेक्स्ट फ़ाइल है जिसमें स्थानीय भाषा स्ट्रिंग्स हैं जो वर्तमान में GB2312 (सरलीकृत चीनी) में एन्कोड किए गए हैं, लेकिन मेरी सभी अन्य भाषा फ़ाइलें यूटीएफ -8 में हैं। मुझे इस फ़ाइल के साथ काम करना बहुत मुश्किल लगता है, क्योंकि मेरे पाठ संपादक में से कोई भी इसके साथ ठीक से काम नहीं करेगा और इसे भ्रष्ट रखेगा। क्या यूटीएफ -8 में इसे बदलने के लिए कोई उपकरण हैं, और क्या ऐसा करने के लिए कोई डाउनसाइड्स हैं? क्या इसे GB2312 के रूप में रखना बेहतर होगा और एक अलग संपादक का उपयोग करना बेहतर होगा (यदि हां, तो क्या आप एक की सिफारिश कर सकते हैं)?GB2312 को UTF-8

अद्यतन: मैं विंडोज एक्सपी (अंग्रेजी स्थापित) का उपयोग कर रहा हूं।

अद्यतन # 2: मैं का उपयोग कर नोटपैड ++ और Notepad2 जीबी 2312 फ़ाइलों को संपादित करने की कोशिश की है, लेकिन दोनों फ़ाइलों और उन्हें भ्रष्ट पढ़ने में असमर्थ हैं।

+0

कौन सा माहौल में? विंडोज? लिनक्स? –

+0

क्षमा करें, यह विंडोज एक्सपी (अंग्रेजी स्थापित) में है। –

+1

आप एक त्वरित/छोटी जावा उपयोगिता लिखने का प्रयास कर सकते हैं जो फ़ाइल को GB2312 के रूप में स्ट्रिंग में पढ़ता है और फिर उसे यूटीएफ -8 के रूप में वापस लिखता है। यह काम करना चाहिए। –

उत्तर

7

आप इस online service को आजमा सकते हैं जो ओपन सोर्स iconv उपयोगिता का उपयोग करता है।
आप अपनी मशीन पर एक कमांड लाइन संस्करण Charco भी इंस्टॉल कर सकते हैं।

GB2312 के लिए, आप एन्कोडिंग के रूप में CP936 का उपयोग कर सकते हैं।

आप एक नेट डेवलपर हैं, तो आपको लगता है कि सिर्फ इतना है कि करता है एक छोटा सा उपकरण बना सकते हैं।
मैंने इसके साथ भी संघर्ष किया है और पाया है कि प्रोग्रामेटिक दृष्टिकोण से हल करना वास्तव में सरल था।

आपको बस कुछ इस तरह (मैं इसे परीक्षण किया है और यह काम करता है) है:

सी #

static void Main(string[] args) { 
    string infile = args[0]; 
    string outfile = args[1]; 

    using (StreamReader sr = new StreamReader(infile, Encoding.GetEncoding(936))) { 
     using (StreamWriter sw = new StreamWriter(outfile, false, Encoding.UTF8)) { 
      sw.Write(sr.ReadToEnd()); 
      sw.Close(); 
     } 
     sr.Close(); 
    } 
} 

में VB.Net

Private Shared Sub Main(ByVal args() As String) 
    Dim infile As String = args(0) 
    Dim outfile As String = args(1) 
    Dim sr As StreamReader = New StreamReader(infile, Encoding.GetEncoding(936)) 
    Dim sw As StreamWriter = New StreamWriter(outfile, false, Encoding.UTF8) 
    sw.Write(sr.ReadToEnd) 
    sw.Close 
    sr.Close 
End Sub 
+0

आप GB2312 मानचित्र को CP936 पर कैसे जानते हैं? मुझे कोई सारणी कहां मिल सकती है जो किसी भी भाषा को किसी भी भाषा का समर्थन करने में सक्षम होने के लिए संबंधित कोडपेज पर सेट करता है? –

2

जीबी 2312 जीबी 18030 के साथ अधिकतर संगत है, इसलिए बाद वाले किसी भी उपकरण को जीबी 2312 का सही ढंग से इलाज करना चाहिए। जीबी 18030 से यूटीएफ -8 (या कुछ अन्य यूनिकोड एन्कोडिंग फॉर्म) में कनवर्ट करने के लिए कई टूल हैं, लेकिन मैं विंडोज के लिए किसी भी विशिष्ट की सिफारिश नहीं कर सकता, क्योंकि मैं यूनिक्स पर काम करता हूं। यदि आप थोड़ा कोड लिखना चाहते हैं, आइकनव लाइब्रेरी, या ICU, स्प्रिंग्स को ध्यान में रखना: आपको इन पुस्तकालयों में आसानी से उपलब्ध सभी रूपांतरण डेटा मिलेंगे।

जीबी 2312 से यूटीएफ -8 में रूपांतरण पूरी तरह से सुरक्षित और हानि रहित है, आपको इसके बारे में चिंता नहीं करनी चाहिए।

3

मैं यहाँ भी आसान थोड़ा सोच रहे होंगे, लेकिन अगर यह सिर्फ इस एक सादा पाठ फ़ाइल है, तो आप निम्न को आज़मा सकते:

  1. &amp; द्वारा सभी & बदलें, &lt; द्वारा सभी < और सभी > द्वारा &gt; (सुरक्षित पक्ष पर होना करने के लिए)
  2. प्रारंभ में लगा पाठ फ़ाइल के लिए निम्न:

    <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body><pre>

  3. ओपन अपने पसंदीदा ब्राउज़र

  4. चयन में फ़ाइल और सभी पाठ
  5. नोटपैड में पेस्ट करें और UTF-8 के रूप में सहेजने की प्रतिलिपि बनाएँ।

आप रूपांतरण करने के लिए कोई कोड लिखने या आपके लिए रूपांतरण करने वाले किसी भी प्रोग्राम को डाउनलोड करने से पहले आप इसके साथ किया जाएगा।

बेशक, मुझे सौ प्रतिशत यकीन नहीं है कि यह काम करेगा, और आपके ब्राउज़र को सही फ़ॉन्ट्स और सबकुछ की आवश्यकता होगी, लेकिन इस तरह की फाइलों के साथ काम करने पर विचार करने पर मुझे लगता है कि आपके पास पहले से ही है ।

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