2012-06-07 10 views
11

का उपयोग करके विशेष वर्ण प्रदर्शित करें मुझे अपने webservice से विशेष डेटाबेस के साथ टेक्स्ट को भेजने या प्रदर्शित करने में समस्या हो रही है। मेरे ग्रहण पर मैंने चरित्र एन्कोडिंग को यूटीएफ -8 पर सेट किया है लेकिन यह अभी भी मुझे अक्षर प्रदर्शित करने नहीं देता है। उदाहरण के लिएSystem.out.println

String test ="привет"; 
System.out.println(test); 

या

String test ="привет"; 
String query = "insert into communication (`test`) VALUES ('"+ test +"'); 
PreparedStatement preparedStmt1 = con.prepareStatement(query); 
preparedStmt1.executeUpdate(); 

कंसोल पर परिणाम के नीचे और अगर कोड की तरह एक साधारण प्रिंट मैं अपने डेटाबेस को यह भेज है ??????। मैं इसे कंसोल पर सही तरीके से प्रदर्शित करने के लिए कैसे प्राप्त करूं और उम्मीद है कि डेटाबेस

+0

इस ग्रहण सांत्वना है, या? आपका कंसोल सेट किस कंसोल सेट पर है? – atk

+1

ग्रहण, यदि कंसोल वर्ण सेट द्वारा आप विंडोज़> प्राथमिकताएं> वर्कस्पेस में सेटिंग्स का मतलब है तो यह यूटीएफ -8 पर सेट है। कंसोल को अलग से सेट करने का कोई और तरीका है? – Amanni

उत्तर

1

हाँ, इसके XXI में स्ट्रिंग एन्कोड करने के लिए के लिए। सदी और हम अभी भी वर्ण एन्कोडिंग जैसी चीजों के साथ संघर्ष कर रहे हैं ...

मेरा पहला अनुमान है कि या तो:

  1. अपने स्रोत फ़ाइल एन्कोडिंग गलत हो सकता है (यदि आप Maven जैसे उपकरणों का निर्माण का उपयोग करते हैं यह हो सकता है स्रोत-एन्कोडिंग को भी सेट करने के लिए आवश्यक हो),
  2. आपका कंसोल एन्कोडिंग गलत हो सकता है (क्या आप विंडोज के अंतर्गत हैं? डिफ़ॉल्ट कमांड लाइन कंसोल डिफ़ॉल्ट रूप से यूटीएफ नहीं है, इसका स्थानीय-निर्भर है, लेकिन इसमें एक छोटे से खेल के साथ रजिस्ट्री आप अपना एन्कोडिंग सेट कर सकते हैं)
  3. आपका डीबी एन्कोडिंग गलत हो सकता है (तालिका एन्कोडिंग क्या है, क्या आप इसे देख सकते हैं ?)
+0

मैंने अभी भी एक ही परिणाम utf8 में टेबल एन्कोडिंग सेट की है। जहां तक ​​एन्कोडिंग जाता है मैं एंड्रॉइड में प्रोग्राम करते समय विशेष वर्ण प्रदर्शित कर सकता हूं। – Amanni

9

देखें कि यह काम करता है या नहीं।

PrintStream out = new PrintStream(System.out, true, "UTF-8"); 
    out.println(test); 

डीबी में भंडारण, निम्नलिखित उपयोग स्पष्ट रूप से UTF-8

String newString = new String(test.getBytes(), "UTF8"); 
+0

नहीं, मुझे वही अक्षर मिलते हैं – Amanni

+0

आपको स्ट्रिंग को "आईएसओ -885 9 -1" पूर्व में एन्कोड करना होगा: नया स्ट्रिंग (test.getBytes(), "iso-8859-1"); – oczdref

0

हो सकता है आप के लिए आईएसओ 8859 पहले अपने चरित्र स्ट्रिंग डिकोड और फिर UTF-8

11

करने के लिए इसे सांकेतिक शब्दों में बदलना करने की जरूरत है आप ग्रहण,

  1. उपयोग कर रहे हैं तो सही पर क्लिक करें आप प्रोजेक्ट करते हैं
  2. श/cmd गुण
  3. करें UTF-8 "पाठ फ़ाइल एन्कोडिंग" में जाएँ

enter image description here

+0

वाह, यह मेरे लिए काम कर रहा है। – Sun

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