⑴ 怎么用java把一个字符串进行utf8编码
String text = “字符串”;
byte[] b_utf8 = text.getBytes("UTF-8"); //utf-8
byte[] b_iso88591 = text.getBytes("ISO8859-1"); //iso8859-1
byte[] b_gbk = text.getBytes("GBK"); //gbk
string unicode = getUnicode(text);//unicode
public static String getUnicode(String source) {
String result = "";
for (int i = 0; i < source.length(); i++) {
result += "\u"+Integer.toHexString((int) source.charAt(i));
}
return result;
}
⑵ java输出utf8编码
给你一点提示:
import java.net.URLEncoder;
yourNewString = URLEncoder.encode(yourString, "UTF-8");
同样,解码就把以上都变成Decoder
我这个是内置包,最简单的方法了,你先试一下吧
⑶ java 怎么把一个字符串进行utf8编码
楼上答得不对,请相信我的方法,已经确认过:
String s="abc";
String s1=URLEncoder.encode(s, "utf-8");
⑷ java怎么把把字符转成utf-8
java不同编码之间进行转换,都需要使用unicode作为中转。
以utf-8转gbk为例,示例代码如下:
String t = "这是一个字符串aaa111";
String utf8 = new String(t.getBytes( "UTF-8"));
System.out.println(utf8);
String unicode = new String(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
String gbk = new String(unicode.getBytes("GBK"));
System.out.println(gbk);
⑸ java里关于String的编码与解码
public
byte[]
getBytes(String
charsetName)
使用指定的字符集将此String编码为byte序列,结果存在一个byte数组中
public
String(byte[]
bytes,
String
charsetName)
通过使用指定的
charset
解码指定的
byte
数组,构造一个新的
String。
在网络传输中,信息都是以字节序列的方式传输的。所以,发送方的String要按照某种编码方式(如UTF-8,GBK)编码为字节序列,在网络中传输后,接收方取得这个字节序列,按照相同的编码方式将字节序列解码为String。
请看下面的代码片段:
String
name
=
"张三";
byte[]
b1
=
name.getBytes("UTF-8");
String
name1
=
new
String(b1,
"UTF-8");
//编码解码相同,正常显示
System.out.println(name1);
String
name2
=
new
String(b1,
"GBK");
//编码解码不同,乱码
System.out.println(name2);
byte[]
b2
=
name.getBytes("GBK");
String
name3
=
new
String(b2,
"GBK");
//编码解码相同,正常显示
System.out.println(name3);
String
name4
=
new
String(b2,
"UTF-8");
//编码解码不同,乱码
System.out.println(name4);
至于你的那个情况,要先用gbk编码,然后再用utf-8解码才能获得正常的字符串,我估计是因为
1.传输过来的字节码是用utf-8编码的,假设字节码为b。
2.你获得的那个字符串,假设为s,是用gbk对b进行解码获得的字符串,所以是乱码。
3.你使用gbk对s进行编码,用gbk解码之后再编码,于是获得了原来的b。
4.你使用utf-8解码,所以获得了正常的字符串。
简单的说:
b
->
(gbk解码)
->
乱码
->
[此处开始是你做的](gbk编码)
->
b
->
(utf-8解码)
->
正常字符串
研究完编码收获会不小的,对以后理解Java的输入输出(尤其是网络通信和文件读写)都很有帮助。
⑹ java String字符串转UTF-8 hexcode怎么转
不知道这是不是你想要的。
String str = "哈希";
byte[] b = str.getBytes();
for(int i=0;i<b.length;i++){
System.out.print(b[i]);
}
控制台输出:-27-109-120-27-72-116
我的eclipse设置编码集为utf-8。看来utf-8里面每个汉字占3个字节了。
⑺ java中如何将UTF-8编码的字符串使用GB18030输出
java
很方便进行这种转换
如果输入是UTF8的字节用
String
s=new
String(utf8_bytes,
"UTF-8");
//utf8_bytes为byte[]类型
如果输入是字符串,直接内
String
s=原返回。
在输出是转换gb18030,不输出时不用转换。
os.write(s.getBytes("GB18030"));
//os为输出流容
⑻ java如何把string转为utf-8
可通过以下代码转:
/**
*GetXMLStringofutf-8
*
*@returnXML-Formedstring
*/
(Stringxml){
//AStringBufferObject
StringBuffersb=newStringBuffer();
sb.append(xml);
StringxmString="";
StringxmlUTF8="";
try{
xmString=newString(sb.toString().getBytes("UTF-8"));
xmlUTF8=URLEncoder.encode(xmString,"UTF-8");
System.out.println("utf-8编码:"+xmlUTF8);
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//returntoStringFormed
returnxmlUTF8;
}
⑼ java String字符串转UTF-8 hexcode怎么转
String s=new String("欲转换字符串".getBytes(),"utf-8");
String s=new String("欲转换字符串".getBytes("utf-8"),"utf-8");
其中
s.getBytes("UTF-8");
的意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8");
的意思是以UTF-8的编码生成字符串