जावा स्ट्रिंग को एक ASCII बाइट सरणी में कैसे परिवर्तित करें?जावा स्ट्रिंग को एक ASCII बाइट सरणी में कैसे परिवर्तित करें?
उत्तर
getBytes
विधि का उपयोग करके, इसे उपयुक्त Charset
(या Charset
नाम) दे रहा है।
उदाहरण:
String s = "Hello, there.";
byte[] b = s.getBytes(StandardCharsets.US_ASCII);
Charset characterSet = Charset.forName("US-ASCII");
String string = "Wazzup";
byte[] bytes = String.getBytes(characterSet);
^
सूचना अपर केस: (जावा 7 से पहले: byte[] b = s.getBytes("US-ASCII");
)
String s = "ASCII Text";
byte[] bytes = s.getBytes("US-ASCII");
केवल एक ही चरित्र कोड आप की कोशिश की में गलत है "स्ट्रिंग"। यह स्ट्रिंग क्लास पर एक स्थिर विधि का आह्वान करने का प्रयास करता है, जो अस्तित्व में नहीं है। इसके बजाय आपको अपनी स्ट्रिंग इंस्टेंस पर विधि का आह्वान करने की आवश्यकता है:
byte[] bytes = string.getBytes(characterSet);
यदि हां, तो क्या आप कृपया मुझे बता सकते हैं कि यह कैसे हो सकता है कि एक हेब्रू पत्र 1 बाइट (एएससीआई एन्कोडिंग) लिया जाता है, यह भी एसीआई में मौजूद नहीं है। और यह मैन्युअल रूप से निर्दिष्ट होने के बाद से डिफ़ॉल्ट एन्कोडंग का उपयोग नहीं कर रहा है। http://i.stack.imgur.com/5WPD3.jpg –
@ रॉयनामिर: यह एक नए प्रश्न के रूप में बेहतर पोस्ट किया जा सकता है, लेकिन इसका कारण यह है कि चरित्र यूएस-एएससीआईआईआई और 'गेटबाइट्स (वर्णसेट) में एन्कोडेबल नहीं है। विधि को उन वर्णों को प्रतिस्थापित करने के लिए निर्दिष्ट किया गया है जिन्हें एन्कोड नहीं किया जा सकता है। यूएस-एएससीआईआई के साथ, यह प्रतिस्थापन चार प्रश्न चिह्न है, इसलिए आपके बाइट सरणी में 'तत्व' के ASCII मान के साथ एक तत्व होता है (63)। –
स्ट्रिंग को एएससीआई मानों में कनवर्ट करें।
String test = "ABCD";
for (int i = 0; i < test.length(); ++i) {
char c = test.charAt(i);
int j = (int) c;
System.out.println(j);
}
समस्या अन्य प्रस्तावित समाधान के साथ है कि वे या तो अक्षर हैं जो सीधे ASCII मैप नहीं किया जा सकता है छोड़ देंगे, या उन्हें ?
की तरह एक मार्कर चरित्र के साथ की जगह है।
उदाहरण के लिए आप उच्चारण के बिना उसी चरित्र में परिवर्तित उच्चारण उदाहरणों को उदाहरण के लिए चाहते हैं। ऐसा करने के लिए कुछ युक्तियां हैं (एक स्थिर मैपिंग टेबल बनाने या यूनिकोड के लिए परिभाषित मौजूदा 'सामान्यीकरण' का लाभ उठाने सहित), लेकिन वे विधियां पूरी तरह से पूर्ण हैं।
आपकी सर्वश्रेष्ठ शर्त junidecode लाइब्रेरी का उपयोग कर रही है, जो कि पूर्ण नहीं हो सकती है, लेकिन यूनिकोड से ASCII को लिप्यंतरित करने के सबसे गंभीर तरीके से बहुत अधिक अनुभव शामिल करती है।
आप एंड्रॉयड में इस की जरूरत है और यह Froyo से अधिक उम्र कुछ भी साथ काम करना चाहते हैं के लिए हो, तो आप भी EncodingUtils.getAsciiBytes() उपयोग कर सकते हैं:
byte[] bytes = EncodingUtils.getAsciiBytes("ASCII Text");
यह वास्तव में एक बहुत अच्छी टिप है! एंड्रॉइड GetBytes (...) पर आईसीएस + – strange
पर भी ठीक से काम नहीं करता है मैं कहीं भी एन्कोडिंग नहीं ढूंढ सकता? – behelit
@behelit यदि आप मेरे लिंक का पालन करते हैं तो यह इस बिट पर रीडायरेक्ट करता है: http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client असल में यह कह रहा है कि आपको अपाचे HTTP लाइब्रेरी को मैन्युअल रूप से शामिल करने की आवश्यकता है क्योंकि इसे अब हटा दिया गया है। – dain
आप एक guava उपयोगकर्ता वहाँ एक आसान Charsets
वर्ग है कर रहे हैं:
String s = "Hello, world!";
byte[] b = s.getBytes(Charsets.US_ASCII);
अलावा नहीं अपने स्रोत कोड में हार्ड-कोड मनमाना वर्ण-सेट नाम से यह है एक बहुत बड़ा लाभ: Charsets.US_ASCII
Charset
प्रकार का है (नहीं String
) इसलिए आप चेक UnsupportedEncodingException
से केवल String.getBytes(String)
से फेंकने से बचें, लेकिन String.getBytes(Charset)
से नहीं।
जावा 7 में समतुल्य StandardCharsets
कक्षा है।
दुख की बात है, 'String.getBytes (Charset) 'API 9 तक नहीं जोड़ा गया था :(तो यदि आप Froyo और ऊपर को लक्षित करना चाहते हैं, तो आप ऐसा नहीं कर सकते। – yincrash
इस प्रयास करें:
/**
* @(#)demo1.java
*
*
* @author
* @version 1.00 2012/8/30
*/
import java.util.*;
public class demo1
{
Scanner s=new Scanner(System.in);
String str;
int key;
void getdata()
{
System.out.println ("plase enter a string");
str=s.next();
System.out.println ("plase enter a key");
key=s.nextInt();
}
void display()
{
char a;
int j;
for (int i = 0; i < str.length(); ++i)
{
char c = str.charAt(i);
j = (int) c + key;
a= (char) j;
System.out.print(a);
}
public static void main(String[] args)
{
demo1 obj=new demo1();
obj.getdata();
obj.display();
}
}
}
मेरी स्ट्रिंग में मैं थाई वर्ण (TIS620 एन्कोडेड) और जर्मन उमलॉट है। Agiles से जवाब मुझे सही रास्ते पर डाल दिया। .getBytes() के बजाय अब मैं
int len = mString.length(); // Length of the string
byte[] dataset = new byte[len];
for (int i = 0; i < len; ++i) {
char c = mString.charAt(i);
dataset[i]= (byte) c;
}
ALLAH की कृपा से मुझे समाधान मिला।दरअसल बेस 64 कक्षा एंड्रॉइड में उपलब्ध नहीं है। अधिक जानकारी के लिए लिंक नीचे दिया गया है।
byte[] byteArray;
byteArray= json.getBytes(StandardCharsets.US_ASCII);
String encoded=Base64.encodeBytes(byteArray);
userLogin(encoded);
यहां बेस 64 कक्षा का लिंक है। http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html
- 1. एक स्ट्रिंग सरणी को बाइट सरणी में कैसे परिवर्तित करें? (जावा)
- 2. जावा में बाइट सरणी में छवि को कैसे परिवर्तित करें?
- 3. पायथन: स्ट्रिंग को बाइट सरणी में परिवर्तित करें
- 4. जावा स्ट्रिंग को बाइट सरणी में कनवर्ट करें
- 5. मैं एक बाइट सरणी को एक स्ट्रिंग में कैसे परिवर्तित करूं?
- 6. एक बाइटरी स्ट्रिंग प्रस्तुति को बाइट सरणी
- 7. स्ट्रिंग में गैर-ASCII वर्ण होने पर एक सी स्ट्रिंग (चार सरणी) को एक पायथन स्ट्रिंग में कैसे परिवर्तित करें?
- 8. सामान्य लिस्प में स्ट्रिंग से बाइट सरणी को कैसे परिवर्तित करें?
- 9. जावा में, मैं एक इनपुटस्ट्रीम को बाइट सरणी (बाइट []) में कैसे परिवर्तित कर सकता हूं?
- 10. मैं जावा बाइट सरणी को स्कैला बाइट सरणी में कैसे परिवर्तित करूं?
- 11. जावा: बाइट सरणी को "ट्रिम" कैसे करें?
- 12. बाइट सरणी से ब्लॉब को कैसे परिवर्तित करें
- 13. आईएसओ में NSData से बाइट सरणी को कैसे परिवर्तित करें?
- 14. बाइट सरणी को छवि फ़ाइल में कैसे परिवर्तित करें?
- 15. एंड्रॉइड: बाइट सरणी को बिटमैप में कैसे परिवर्तित करें?
- 16. क्लोजर में अनुक्रम को एक बाइट [] में कैसे परिवर्तित करें?
- 17. बाइट [] से इनपुटस्ट्रीम को कैसे परिवर्तित करें?
- 18. एक हेक्स-एन्कोडेड स्ट्रिंग को पर्ल में बाइट स्ट्रिंग में कैसे परिवर्तित करें?
- 19. एक स्ट्रिंग को एक बाइट सरणी में कनवर्ट करें और फिर मूल स्ट्रिंग
- 20. एक बाइट सरणी को एक int सरणी में कैसे परिवर्तित करें?
- 21. एक बाइट [] में डेटाटाइम सी # को कैसे परिवर्तित करें?
- 22. वीबीए में बाइट ऐरे में एक साधारण स्ट्रिंग को कैसे परिवर्तित करें?
- 23. जावा में, मैं एक हेक्स स्ट्रिंग को बाइट [] में कैसे परिवर्तित करूं?
- 24. सिल्वरलाइट में एक बाइट ऐरे को स्ट्रिंग में कनवर्ट करें?
- 25. बाइट [] ASCII
- 26. जावा में, ऑब्जेक्ट्स की सूची को बाइट सरणी में कैसे परिवर्तित करें?
- 27. PHP में किसी स्ट्रिंग में सरणी को कैसे परिवर्तित करें?
- 28. बिटमैप को बाइट सरणी में कनवर्ट करें
- 29. एक md5 हैश बाइट सरणी को एक स्ट्रिंग
- 30. system.data.linq.binary को बाइट में परिवर्तित करें []
मैं कितना आसान था इससे हल्के से शर्मिंदा हूं। –
यह '\ u00e0' (& agrave;) में '?' जैसे अपरिवर्तनीय वर्णों को परिवर्तित करेगा। यह एक विधि है जो इसे 'ए' में बदल देती है। –
जावा 7 या बाद में उपयोग करने वाले लोगों के लिए, कक्षा [मानकCharsets] (http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html) का उपयोग करें जिसमें मानक के लिए कुछ स्थिरांक शामिल हैं वर्णसेट। 'बाइट [] बी = एस .getBytes (StandardCharsets.US_ASCII);' –