java - यूटीएफ-8 एन्कोडिंग; केवल कुछ जापानी अक्षर परिवर्तित नहीं हो रहे हैं




encoding utf-8 (2)

आप यहाँ अवधारणाओं को मिला रहे हैं

एक String का केवल एक अनुक्रम है ( char एस); एक String में ही कोई एन्कोडिंग नहीं है इसके लिए क्या है, इसके बाद के संस्करण carrier pigeons साथ characters बदलें। वही चीज। एक वाहक कबूतर में कोई एन्कोडिंग नहीं है। न तो एक char करता है (1)

आप यहां क्या कर रहे हैं:

new String(x.getBytes(), "UTF-8")

एक "गरीब व्यक्ति का एन्कोडिंग / डिकोडिंग प्रक्रिया" है आप शायद यह देख पाएंगे कि .getBytes() दो संस्करण हैं: एक जहां आप कोई वर्णसेट एक तर्क के रूप में पास करते हैं और दूसरा जहां आप नहीं करते हैं

यदि आप नहीं करते हैं, और यही है जो यहाँ होता है, इसका मतलब है कि आप अपने डिफ़ॉल्ट वर्ण सेट का उपयोग करके एन्कोडिंग प्रक्रिया का परिणाम प्राप्त करेंगे; और फिर आप इस बाइट अनुक्रम को यूटीएफ -8 का उपयोग करके फिर से डीकोड करते हैं।

ऐसा मत करो स्ट्रिंग में बस के रूप में ले आता है अगर, हालांकि, आपको मूल बाइट स्ट्रीम को स्ट्रिंग में पढ़ने में परेशानी होती है, इसका अर्थ है कि आप गलत वर्णसेट के साथ एक Reader उपयोग करते हैं। उस भाग को ठीक करें

अधिक जानकारी के लिए, इस लिंक को पढ़ें।

(1) तथ्य यह है कि, वास्तव में, एक char यूटीएफ -16 कोड इकाई इस चर्चा के लिए अप्रासंगिक है

मुझे जर्सी वेब सेवा से पैरामीटर मान प्राप्त हो रहा है, जो जापान के वर्णों में है

यहां, 'जापानी स्ट्रिंग' जापानी भाषा में वर्ण वाले वेब सेवा पैरामीटर है।

   String name = new String(japaneseString.getBytes(), "UTF-8");

हालांकि, मैं कुछ स्टिंग लिटरल को सफलतापूर्वक रूपांतरित करने में सक्षम हूं, जबकि उनमें से कुछ समस्याएं पैदा कर रहे हैं

निम्न सफलतापूर्वक परिवर्तित किए गए थे:

 1) アップル
 2) 
 3) 世丕且且世两上与丑万丣丕且丗丕
 4) 世世丗丈

हालांकि ये नहीं है:

 1) ひほわれよう
 2) 存在する

जब मैंने आगे की जांच की, मुझे पता चला कि ये दो स्ट्रिंग कुछ जंक वर्णों में परिवर्तित हो रही हैं।

 1) Input: ひほわれよう        Output : �?��?��?れよ�?�
 2) Input: 存在する            Output: 存在�?�る

कोई भी विचार क्यों कुछ जापानी पात्रों को ठीक से परिवर्तित नहीं किया जाता है?

धन्यवाद।


टॉमकेट (जेवीएम) के स्टार्टअप में मान यूटीएफ -8 के साथ सेट करने के लिए जेवीएम पैरामीटर फाइल। एनकोडिंग के साथ प्रयास करें। पूर्व: -Dfile.encoding = UTF-8





utf