मुझे यूटीएफ -8 एन्कोडिंग का उपयोग करके बाइट सरणी में स्ट्रिंग को एन्कोड करने की आवश्यकता है। मैं Google अमरूद का उपयोग कर रहा हूं, इसमें चार्ससेट क्लास पहले से ही यूटीएफ -8 एन्कोडिंग के लिए चार्ससेट इंस्टेंस को परिभाषित करता है। मैं 2 तरीके क्या करना है:जावा स्ट्रिंग .getBytes (charsetName) बनाम String.getBytes (वर्णसेट ऑब्जेक्ट)
String.getBytes (charsetName)
try { byte[] bytes = my_input.getBytes ("UTF-8"); } catch (UnsupportedEncodingException ex) { }
String.getBytes (वर्णसेट वस्तु)
// Charsets.UTF_8 is an instance of Charset byte[] bytes = my_input.getBytes (Charsets.UTF_8);
मेरा प्रश्न है जो एक है मुझे उपयोग करना चाहिए? वे एक ही परिणाम लौटते हैं। रास्ते 2 के लिए - मुझे कोशिश/पकड़ने की ज़रूरत नहीं है! मैं जावा स्रोत कोड पर एक नज़र डालता हूं और मुझे लगता है कि इस तरह 1 और रास्ता 2 अलग-अलग लागू किए गए हैं।
किसी के पास कोई विचार है?
क्या आपको दोनों से समकक्ष परिणाम मिलते हैं? यदि ऐसा है, तो मैं बाद के मामले का पक्ष लेगा। यदि नहीं, तो आपको यह तय करने की आवश्यकता है कि आप सही कहां मानते हैं। – merlin2011
हां, वे एक ही परिणाम लौटते हैं। लेकिन मेरी चिंता यह है कि वे अलग-अलग क्यों लागू किए जाते हैं? क्यों 1 रास्ता आंतरिक रूप से 2 रास्ता नहीं बुलाएगा? – Loc
@Loc आपको क्या लगता है कि पूर्व आंतरिक रूप से बाद में फोन नहीं कर रहा है?(या, वे दोनों कुछ अन्य सामान्य आंतरिक विधि नहीं बुलाएंगे?) http://www.docjar.com/html/api/java/lang/String.java.html रेखाएं 951 - 980 –