如何將Java字符串轉換爲ASCII字節數組?如何將Java字符串轉換爲ASCII字節數組?
回答
String s = "ASCII Text";
byte[] bytes = s.getBytes("US-ASCII");
只有一個字錯在你嘗試代碼:
Charset characterSet = Charset.forName("US-ASCII");
String string = "Wazzup";
byte[] bytes = String.getBytes(characterSet);
^
注意大寫「串」。這會嘗試在字符串類上調用一個不存在的靜態方法。相反,您需要調用字符串實例上的方法:
byte[] bytes = string.getBytes(characterSet);
如果是這樣,你能告訴我一個希伯來字母是如何取1個字節(ascii編碼),它甚至不存在於ascii中。並且它不使用默認的編碼,因爲我手動指定。 http://i.stack.imgur.com/5WPD3.jpg – 2014-10-30 09:03:02
@RoyiNamir:這可能會更好地發佈爲新問題,但原因是該字符在US-ASCII和getBytes(字符集)中不可編碼,方法被指定替換無法編碼的字符。對於US-ASCII,這個替換字符是問號,所以你的字節數組包含一個ASCII值爲'?'的元素。 (63)。 – 2014-10-30 11:55:00
將字符串轉換爲ascii值。
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字符,或者像?
標記字符替換它們。
您可能希望將重音字符轉換爲沒有重音的相同字符。有幾個技巧可以做到這一點(包括自己構建靜態映射表或利用爲unicode定義的現有「規範化」),但這些方法遠未完成。
最好的辦法是使用junidecode這個庫,它不能完成,但是它以最正常的將Unicode轉換爲ASCII的方式結合了大量經驗。
如果您正好需要這在Android和希望把它與任何東西比升級Froyo更早的版本,你也可以使用EncodingUtils.getAsciiBytes():
byte[] bytes = EncodingUtils.getAsciiBytes("ASCII Text");
這實際上是一個很不錯的提示!在Android上getBytes(...)即使在ICS上也不能正常工作+ – strange 2013-03-21 01:35:10
我無法在任何地方找到EncodingUtils? – behelit 2016-04-15 00:22:21
@behelit如果你按照我的鏈接它重定向到這個位:http://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client 基本上說,您需要手動包含Apache HTTP庫,因爲它現在已被棄用。 – dain 2016-04-16 11:48:39
String s = "Hello, world!";
byte[] b = s.getBytes(Charsets.US_ASCII);
除了在源代碼中沒有硬編碼字符集的任意命名它具有更大的優勢:Charsets.US_ASCII
是Charset
型(不String
)所以你避免檢查UnsupportedEncodingException
只從String.getBytes(String)
拋出,但不是從String.getBytes(Charset)
拋出。
在Java 7中有相當於StandardCharsets
的類。
不幸的是,'String.getBytes(Charset)'直到API 9 :(所以如果你想要定位Froyo和以上,你不能這樣做。 – yincrash 2012-09-07 19:15:31
試試這個:
/**
* @(#)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的恩典我找到了解決方案。實際上,Base64類在android中不可用。下面給出鏈接以獲取更多信息。
byte[] byteArray;
byteArray= json.getBytes(StandardCharsets.US_ASCII);
String encoded=Base64.encodeBytes(byteArray);
userLogin(encoded);
這裏是Base64類的鏈接。 http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html
- 1. 如何將字符串數組轉換爲字節數組? (java)
- 2. Java:如何將ASCII字符串轉換爲字符串?
- 3. 將Java字符串轉換爲16字節的字節數組
- 4. 如何將字符串轉換爲字節數組中的Java
- 5. 如何將字符和字符串轉換爲字節數組?
- 6. 將字符串數組(字節值)轉換爲字節數組
- 7. Python將ASCII字符轉換爲字節
- 8. 將字符串轉換爲字符ascii
- 9. 如何將csv字節字符串轉換爲Java中的字節數組?
- 10. 如何將數字(作爲字符串)轉換爲Java中的字節數組?
- 11. Java - 將字節[]轉換爲字符串
- 12. 字節數組轉換爲ASCII字符串是亂碼
- 13. 將字符串轉換爲字節數組並將字節數組轉換爲字符串
- 14. 將字符串轉換爲ascii和ascii爲字符串
- 15. 如何將Java字節數組轉換爲Scala字節數組?
- 16. C#將字節數組與字符串轉換爲字符串
- 17. 將字節數組轉換爲字符串的字節數
- 18. 如何字節數組轉換爲字符串的Java(Android版)
- 19. 將字節字符串轉換爲java中的字母數字字符數組?
- 20. 將Java字符串轉換爲字節數組
- 21. 字符串轉換爲字節數組
- 22. 如何將字符串轉換爲2D字符數組JAVA
- 23. 將Java字符串轉換爲數組
- 24. 將Java字符串轉換爲數組
- 25. 如何將utf8字符串轉換爲ascii字符串?
- 26. 將字符串轉換爲ASCII和ASCII字符串
- 27. 將字節格式字符串轉換爲字節數組android
- 28. C#將字節字符串轉換爲字節數組
- 29. 如何將字符串和位圖轉換爲字節數組?
- 30. 如何將字節數組轉換爲字符串
我有點尷尬的多麼容易。 – 2011-04-16 16:54:28
這會將'\ u00e0'(&agrave;)等不可映射的字符轉換爲'?'。有一種將其轉換爲'a'的方法會更好。 – 2012-01-02 13:11:19
對於使用Java 7或更高版本的用戶,請使用包含標準常量的類[StandardCharsets](http://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html)字符集。 'byte [] b = s.getBytes(StandardCharsets.US_ASCII);' – 2014-05-15 22:29:25