導航:首頁 > 編程語言 > java字元串轉asc碼

java字元串轉asc碼

發布時間:2025-05-24 12:27:15

java字元串轉16進制ascii碼

String s = "abcd";
byte[] b = s.getBytes();
int[] in = new int[b.length];
for (int i = 0; i < in.length; i++) {
in[i] = b[i]&0xff;
}
for (int j = 0; j < in.length; j++) {
System.out.println(Integer.toString(in[j], 0x10));
}

㈡ JAVA如何將16進制數字轉換為ASCII中的字元串。

使用這個方法可以傳進去的16進制的數字組成的字元串轉化為內utf-8格式的字元容串

public static String toStringHex1(String s) {
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(
i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "utf-8");// UTF-16le:Not
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}

㈢ 在Java中如何將字元轉換成ASCII碼

java中如何將來一個字元轉換為自ascii碼:
方法1:
char c = 'a ';
byte b =(byte)c;

方法2:
直接將這個字元轉化為int型就可以得到ascii碼值
char c = 'a ';
int b = c; //字元的ascii碼值

同理將一個ascii碼轉換為相應的字元:
例如:字元a
int d = 97;
char e = (char)d;

㈣ java輸入一個字元,如果是字母,則輸出相應的ASCII值,如果是數字字元,則轉換成相應的數值輸出

^

代碼如下:

System.out.print("輸入一個字元:");
Stringstr=input.next();
booleanisNumber=str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
if(isNumber){
System.out.println("輸入的數字回是:"+str);
}else{
System.out.println("輸入的ASCII碼是:"+(int)str.charAt(0));
}

運行結果答是:

㈤ 字元和ASCII碼相互轉換(java編程)

使用強制轉換,'1'--->(byte)'1'即是ascii,要十六進制,就用String.format("%02X",(byte)'1');

System.out.println("'1'ASCII="+((byte)'1'));
System.out.printf("'1'ASCII hex=%02X\n",(byte)'1');
//............

System.out.println("40->"+((char)40) );
System.out.println("59->"+((char)59) );
//..............

System.out.println("0x40->"+((char)0x40) );
//.................

㈥ 急!急!JAVA中ASCII轉碼問題

看了幾位的回答,感覺有點好笑,樓主本身就出了一個假命題,幾位回答都沒有弄清字元集的轉換,樓主也不知道自己本身就犯了一個致命錯誤,「你好」本身就是一個多位編碼,你卻硬要用低位碼去解碼,不出錯才怪呢?
String s1 =new String(chinaString.getBytes("gb2312"),"ISO-8859-1");

這里的gb2312可以省略,系統會默認用你控制面板設定好的字元集,因為原來「你好」是多位編碼,所以必須用多位編碼去解碼,也就是gb2312或utf-8去解碼,這樣chinaString.getBytes("gb2312")就變成一個byte數組,這時候你可以隨意重新指定編碼如iso-8859-1,這是s1就變成一個是iso-8859-1編碼的字元串,如果你想重新轉為中文,那麼,你用什麼字元集編碼的,必須用什麼字元集來解碼,這里是iso-8859-1,可以這么來做

String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");
這樣s2又重新變回中文了,所以當你列印s2時,就是「你好」。

還有一個問題,為什麼這里用iso-8859-1來重新編碼,而不用其他的字元集呢?這里因為,其他字元集無法相互轉碼而發生編碼丟失現象,你可以試試,把iso-8850-1換成utf-8試試,這無法重新轉回來,這導致亂碼現象,如果你ios-8850-1換成gbk,大部分是可以的,因為gbk兼容gb2312,但是,不是所有的都能相互轉回來,最好用iso-8850-1來作為中間轉碼字元集,這是因為所有的字元集都對iso-8859-1兼容,不管是gbk還是gb2312,utf-8,都能完美地轉換回來。

說了這么多,可能大家還有點迷糊,這應用在什麼地方。我舉個例子,大家知道,經常有人做網路爬蟲,把網頁下載下來,但是,網頁編碼各種各樣,主要有iso-8859-1,gbk,gb2312,utf-8,網頁以io位元組流下載下來,要想把它轉換字元流,也就是文字,這時候要知道編碼是什麼。怎麼辦呢?這樣做,不管它,首先以iso-8859-1編碼轉換過來,然後再用正則表達式看看網頁頭部,如:
<meta content="text/html; charset=gb2312" http-equiv="Content-Type">,這時就知道這個網頁的編碼是gb2312,再利用這個式子
String s2 = new String(s1.getBytes("ISO-8859-1"),"gb2312");
s2就能正確顯示網頁內容。假如你用其他字元集如utf-8作為中間碼,也能知道網頁編碼是gb2312,但這是你用式子
String s2 = new String(s1.getBytes("utf-8"),"gb2312"),就會出現亂碼現象,所以最好用iso-8859-1作為中間碼。

所以,樓主除了犯以上錯誤以外,還有,就不應該用US-ASCII作為中間碼,否則,是不能轉換為中文的,它們之間無法做到相互轉換,只有iso-8859-1才能完美轉換成其他編碼。

閱讀全文

與java字元串轉asc碼相關的資料

熱點內容
怎麼把文檔數據相加 瀏覽:713
百度復制到word文件 瀏覽:273
cms二次開發教程 瀏覽:914
win7怎麼強制刪除文件夾 瀏覽:51
一加3t最省電的版本 瀏覽:631
不同網路的列印機共享 瀏覽:986
酒泉往瓜州寄文件需要多少錢 瀏覽:636
編程語言代碼如何運行 瀏覽:912
第多少多少號文件 瀏覽:325
怎麼調換游戲數據包 瀏覽:801
3dmax馬桶教程 瀏覽:562
phantomjs編碼 瀏覽:365
特斯拉app圖標是什麼功能 瀏覽:200
繪畫app上眼睛怎麼畫 瀏覽:503
aspnet無法載入項目文件 瀏覽:172
怎麼知道寬頻的賬號和密碼忘了怎麼辦 瀏覽:603
linux系統文件在硬碟中如何存放 瀏覽:1000
原網址網問升級 瀏覽:500
win10如何將文件後綴修改 瀏覽:233
米家app怎麼控制二個家庭 瀏覽:192

友情鏈接