मैं कच्चे यूटीएफ -8 स्ट्रिंग को हेक्स स्ट्रिंग में कनवर्ट करने में सक्षम होना चाहता हूं। नीचे दिए गए उदाहरण में मैंने एक नमूना यूटीएफ -8 स्ट्रिंग बनाया है जिसमें 2 अक्षर हैं। फिर मैं हेक्स मान प्राप्त करने की कोशिश कर रहा हूं लेकिन यह मुझे नकारात्मक मान देता है।जावा: एक स्ट्रिंग से यूटीएफ -8 हेक्स मान प्राप्त करें?
मैं इसे कैसे मुझे दे 05D0 और 05D1
String a = "\u05D0\u05D1";
byte[] xxx = a.getBytes("UTF-8");
for (byte x : xxx) {
System.out.println(Integer.toHexString(x));
}
धन्यवाद कर सकते हैं।
ठीक है, क्या आप यूटीएफ -8 (0xD790) या कोड पॉइंट (0x000005D0) के हेक्स मान चाहते हैं? यदि आप कोड बिंदु चाहते हैं, तो बाइट को 'स्ट्रिंग (बाइट्स, "यूटीएफ -8") के साथ स्ट्रिंग में कनवर्ट करें और फिर हेक्स प्रस्तुति प्राप्त करने के लिए' Character.codePointAt (...)। ToHexString() 'का उपयोग करें। – ataylor
शायद मुझे कुछ याद आ रहा है। 'Character.codePointAt' में' toHexString' विधि नहीं है, यह एक पूर्णांक देता है। क्या आप मुझे पूरा उदाहरण दे सकते हैं? धन्यवाद – thedp
ओह, toHexString एक स्थिर विधि है। 'System.out.println (Integer.toHexString (Character.codePointAt (" \ u05D0 ", 0)))' '5d0' प्रिंट करेगा। यदि आप बाईं ओर शून्य के साथ पैड करना चाहते हैं, तो 'System.out.printf ("% 08x", Character.codePointAt ("\ u05D0", 0))' 'प्रिंट करें जो '000005d0' प्रिंट करता है। – ataylor