2012-04-10 11 views
7

मुझे जावा से यूटीएफ -8 में * निक्स स्क्रिप्ट के सेट के एन्कोडिंग को प्रोग्रामेटिक रूप से बदलने की आवश्यकता है। मैं उन्हें कुछ भी नहीं लिखूंगा, इसलिए मैं यह जानने की कोशिश कर रहा हूं कि यह सबसे आसान तरीका है। ऐसा करने का सबसे तेज़ तरीका। फाइलें बहुत ज्यादा नहीं हैं और वह बड़ी नहीं हैं। मैं कर सकता:जावा के साथ मौजूदा फाइल का एन्कोडिंग बदलें?

  • "लिखें" एन्कोडिंग के रूप में UTF-8 सेट के साथ एक OutputStream का उपयोग कर एक खाली स्ट्रिंग
  • के बाद से मैं पहले से ही FileUtils उपयोग कर रहा हूँ (अपाचे कॉमन्स से), मैं पढ़ सकता है | इन की सामग्री लिखने फाइलें, यूटीएफ -8 को एन्कोडिंग

कोई बड़ा सौदा नहीं है, लेकिन क्या कोई इस मामले में पहले चला गया है? क्या किसी भी दृष्टिकोण पर कोई विपक्ष है?

+2

* पूरी फ़ाइल पढ़ा जाना चाहिए और फिर से लिखा * मामले को छोड़कर सामान्य 7-बिट स्वच्छ ASCII फ़ाइलों (और ऐसे) जिन्हें प्रारंभिक बीओएम की आवश्यकता नहीं होती है। बीओएम धारा के साथ-साथ किसी भी एन्कोडिंग परिवर्तन को स्थानांतरित करेगा। –

+0

लेकिन यूनिक्स डिफ़ॉल्ट एन्कोडिंग यूटीएफ -8 है मुझे विश्वास है। आपकी स्क्रिप्ट का एन्कोडिंग क्या है। – Cratylus

+0

@ user384706 शायद यह कहना उचित है कि गैर-बीओएम धाराएं कई "टेक्स्ट" अनुप्रयोगों द्वारा यूटीएफ -8 के रूप में ली जाती हैं ... एक "डिफ़ॉल्ट एन्कोडिंग" किसी विशेष भाषा/पुस्तकालय/एपीआई। –

उत्तर

11

के रूप में अनुरोध किया है, और जब से तुम कॉमन्स कब का उपयोग कर रहे हैं, यहाँ उदाहरण कोड (त्रुटि हवा के लिए जाँच) है:

import java.io.File; 
import java.io.IOException; 
import org.apache.commons.io.FileUtils; 

public class Main { 
    public static void main(String[] args) throws IOException { 
     String filename = args[0]; 
     File file = new File(filename); 
     String content = FileUtils.readFileToString(file, "ISO8859_1"); 
     FileUtils.write(file, content, "UTF-8"); 
    } 
} 
+0

क्या 'यूटीएफ -8' आवश्यक है? मुझे लगता है कि जावा का डिफ़ॉल्ट एन्कोडिंग 'यूटीएफ -8' है वैसे भी – Cratylus

+3

यहां कुछ बातें कहने हैं। सबसे पहले डिफ़ॉल्ट रूप से tio utf8 हो सकता है, और दूसरा यह है कि यह कोड एन्कोडिंग के बारे में है, यह स्पष्ट होना सर्वोत्तम है। http://stackoverflow.com/questions/1006276/what-is-the-default-encoding-of-jvm – daveb

+0

चेतावनी: किसी कारण से यह कई KB से अधिक फ़ाइलों को काटता है, अनिवार्य रूप से किसी निश्चित बिंदु से फ़ाइल की सामग्री को हटा देता है –

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