2015-06-10 8 views
8

युक्त संपत्ति फ़ाइल से पढ़ना मैं एक प्रॉपर्टी फ़ाइल पढ़ रहा हूं जिसमें यूटीएफ 8 वर्णमाला में संदेश शामिल है।यूटीएफ 8 वर्ण

**Problem** 
The output is not in appropriate formate even though i have taken InputStream. 

संपत्ति फ़ाइल लग रहा है

username=LBSUSER 
[email protected] 
url=http://localhost:1010/soapfe/services/MessagingWS 
timeout=20000 
message=Spanish character are = {á é í, ó,ú ,ü, ñ, ç, å, Á, É, Í, Ó, Ú, Ü, Ñ, Ç, ¿, °, 4° año = cuarto año, €, ¢, £, ¥} 

और मैं इस फ़ाइल को इस तरह की कुछ बात पढ़ रहा हूँ,

Properties props = new Properties(); 
props.load(new FileInputStream("uinsoaptest.properties")); 
String username = props.getProperty("username", "test"); 
String password = props.getProperty("password", "12345"); 
String url = props.getProperty("url", "12345"); 
int timeout = Integer.parseInt(props.getProperty("timeout", "8000")); 
String messagetext = props.getProperty("message"); 
System.out.println("This is soap msg : " + messagetext); 

उपरोक्त संदेश के आउटपुट की तरह

enter image description here

है 10

आप {************************ SOAP संदेश परीक्षा ******** के बाद cmd में संदेश देखने में सक्षम हो सकते हैं ***************} टेक्स्ट

मुझे बाध्य किया जाएगा यदि मुझे इस फ़ाइल को ठीक से पढ़ने में कोई मदद मिलेगी। मैं दूसरे दृष्टिकोण के साथ इस फाइल को पढ़ सकते हैं, लेकिन मैं कम coed संशोधन रहा हूँ ..

उत्तर

18

उपयोग एक InputStreamReaderProperties.load(Reader reader) साथ:

FileInputStream input = new FileInputStream(new File("uinsoaptest.properties")); 
props.load(new InputStreamReader(input, Charset.forName("UTF-8"))); 
+0

यह एक अजीब समस्या है। उबंटू में मैं बस 'props.load (propFile)' का उपयोग करता हूं और यह अच्छी तरह से काम करता है, लेकिन विंडोज़ में मुझे यूनिकोड प्रोप फ़ाइल को सही तरीके से लोड करने के लिए उपरोक्त कोड का उपयोग करना पड़ा! – vakarami

+0

यह अजीब नहीं है, आखिरकार। चरित्र सेट भारी प्लेटफार्म-निर्भर हैं। इसलिए, यह आश्चर्यचकित नहीं होना चाहिए कि उबंटू विंडोज से अलग व्यवहार करता है। असल में, आपको अगले विंडोज संस्करण में जाने के बाद फिर से अपना कोड बदलना पड़ सकता है (या सटीक होना: एक और जेवीएम संस्करण)। –

2

उपयोग props.load(new FileReader("uinsoaptest.properties")) बजाय। डिफ़ॉल्ट रूप से यह एन्कोडिंग Charset.forName(System.getProperty("file.encoding")) का उपयोग करता है जिसे System.setProperty("file.encoding", "UTF-8") के साथ या कमांडलाइन पैरामीटर -Dfile.encoding=UTF-8 के साथ यूटीएफ -8 पर सेट किया जा सकता है।

-1

जब आप अपनी FileInputStream ऑब्जेक्ट बनाते हैं तो आपको यूटीएफ -8 एन्कोडिंग निर्दिष्ट करना चाहिए। आप इस निर्माता का उपयोग कर सकते हैं:

new FileInputStream("uinsoaptest.properties", "UTF-8"); 

आप अपने JVM करने के लिए परिवर्तन करने के लिए इतनी के रूप में डिफ़ॉल्ट रूप से UTF-8 फ़ाइलों को पढ़ने में सक्षम होना चाहते हैं, तो आप कुछ करने के लिए अपने JVM विकल्पों में JAVA_TOOL_OPTIONS बदलने के लिए होगा इस तरह:

-Dfile.encoding=UTF-8 
+1

यह कन्स्ट्रक्टर मौजूद नहीं है। –

+0

@JavaFanatic हाँ कन्स्ट्रक्टर की जांच करें, हो सकता है कि आप कुछ और लिखने वाले हों .. – Som

+0

@ सोम मेरा मतलब था 'FileInputStream। (स्ट्रिंग, स्ट्रिंग) ' –

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