导航:首页 > 编程语言 > ascll转换java

ascll转换java

发布时间:2024-10-16 16:10:49

❶ 急!急!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才能完美转换成其他编码。

❷ 字符和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码转换为 十六进制

我刚好写了


publicstaticStringASCII2HEX(StringASCII2HEX_STRING){

switch(ASCII2HEX_STRING){

case"NUL":
return"00";
case"SOH":
return"01";
case"STX":
return"02";
case"ETX":
return"03";
case"EOT":
return"04";
case"ENQ":
return"05";
case"ACK":
return"06";
case"BEL":
return"07";
case"BS":
return"08";
case"HT":
return"09";
case"LF":
return"0A";
case"VT":
return"0B";
case"FF":
return"0C";
case"CR":
return"0D";
case"SO":
return"0E";
case"SI":
return"0F";
case"DLE":
return"10";
case"DC1":
return"11";
case"DC2":
return"12";
case"DC3":
return"13";
case"DC4":
return"14";
case"NAK":
return"15";
case"SYN":
return"16";
case"ETB":
return"17";
case"CAN":
return"18";
case"EM":
return"19";
case"SUB":
return"1A";
case"ESC":
return"1B";
case"FS":
return"1C";
case"GS":
return"1D";
case"RS":
return"1E";
case"US":
return"1F";
case"SP":
return"20";
case"!":
return"21";
case"\":
return"22";
case"#":
return"23";
case"$":
return"24";
case"%":
return"25";
case"&":
return"26";
case"'":
return"27";
case"(":
return"28";
case")":
return"29";
case"*":
return"2A";
case"+":
return"2B";
case",":
return"2C";
case"_":
return"2D";
case".":
return"2E";
case"/":
return"2F";
case"0":
return"30";
case"1":
return"31";
case"2":
return"32";
case"3":
return"33";
case"4":
return"34";
case"5":
return"35";
case"6":
return"36";
case"7":
return"37";
case"8":
return"38";
case"9":
return"39";
case":":
return"3A";
case";":
return"3B";
case"<":
return"3C";
case"=":
return"3D";
case">":
return"3E";
case"?":
return"3F";
case"@":
return"40";
case"A":
return"41";
case"B":
return"42";
case"C":
return"43";
case"D":
return"44";
case"E":
return"45";
case"F":
return"46";
case"G":
return"47";
case"H":
return"48";
case"I":
return"49";
case"J":
return"4A";
case"K":
return"4B";
case"L":
return"4C";
case"M":
return"4D";
case"N":
return"4E";
case"O":
return"4F";
case"P":
return"50";
case"Q":
return"51";
case"R":
return"52";
case"S":
return"53";
case"T":
return"54";
case"U":
return"55";
case"V":
return"56";
case"W":
return"57";
case"X":
return"58";
case"Y":
return"59";
case"Z":
return"5A";
case"[":
return"5B";
case""":
return"5C";
case"]":
return"5D";
case"↑":
return"5E";
case"←":
return"5F";
case"`":
return"60";
case"a":
return"61";
case"b":
return"62";
case"c":
return"63";
case"d":
return"64";
case"e":
return"65";
case"f":
return"66";
case"g":
return"67";
case"h":
return"68";
case"i":
return"69";
case"j":
return"6A";
case"k":
return"6B";
case"l":
return"6C";
case"m":
return"6D";
case"n":
return"6E";
case"o":
return"6F";
case"p":
return"70";
case"q":
return"71";
case"r":
return"72";
case"s":
return"73";
case"t":
return"74";
case"u":
return"75";
case"v":
return"76";
case"w":
return"77";
case"x":
return"78";
case"y":
return"79";
case"z":
return"7A";
case"{":
return"7B";
case"|":
return"7C";
case"}":
return"7D";
case"~":
return"7E";
case"DEL":
return"7F";
default:
return"";

}
}

❹ JAVA把ASCII码转变为字符串

publicclassTTTTT{

publicstaticvoidmain(String[]args){
Stringstring="1041011081123210910133";
System.out.println(asciiToString(string));
}

(Stringtext){
StringBuilderbuilder=newStringBuilder();
for(inti=0;i<text.length();i++){
if(text.charAt(i)<='2'&&i<=text.length()-3){
intcode=Integer.parseInt(text.substring(i,i+3));
builder.append((char)code);
i+=2;
}else{
intcode=Integer.parseInt(text.substring(i,i+2));
builder.append((char)code);
i+=1;
}
}
returnbuilder.toString();
}

}

你这编码很怪啊,结果竟然是help me!

1041011081123210910133
解析起来很麻烦那,不是3位3位的。
104
101
108
112
32
109
101
33

❺ 在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码转换为 十六进制

使用这个方法可以传进去的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;
}
追问
我要ASCII格式的字符串,有吗,谢了。

追答
那就修改s = new String(baKeyword, "ASCII")这一行就行了,后面的表示要转化的编码格式可以选很多种,以下是你要的代码

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, "ASCII");
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}

❼ Java中,如何把ascii码转换成字符

如果是单个字符的话,直接转换就可以

intd=97;
chare=(char)d;

如果是一串ascii码的话,最好存在byte[]中

byte[]b={97,98,99};
System.out.println(newString(b));
阅读全文

与ascll转换java相关的资料

热点内容
102乘48算法 浏览:404
编程如何复制粘贴 浏览:108
linux设置字体命令 浏览:134
python可以计算大规模数值吗 浏览:912
什么服务器跑代码好跑 浏览:205
如何对文件夹所有文件进行编号 浏览:980
windows10反编译程序 浏览:843
如何把安卓app传到另一个手机 浏览:178
马自达6空调压缩机响 浏览:681
这程序员真可爱 浏览:450
编程猫编程的费用 浏览:627
贪心算法几个经典例子详细解读 浏览:421
u盘被别人加密怎么办 浏览:485
查看wrf的编译 浏览:942
瑞幸app如何预约自提 浏览:687
安卓怎么能关掉搜索 浏览:221
简单实用的桌面文件夹 浏览:402
解开压缩包打开文件夹 浏览:14
解压日本喜剧 浏览:870
如何看出服务器性能配置 浏览:649