Ⅰ java编码问题,GBK转化为UTF-8
首先理解java的字符概念
java中字符串是字符的序列,虚拟机内部的字符都是16位的unicode字符,等价于C++中的WCHAR,也是为了实现虚拟机方便
WCHAR叫做宽字符,对应的MuitiChar叫做多字符,这种多字符中字符的位数不唯一
GBK 和 UTF8 是多字符的不同编码形式
s=new String(s.getBytes("gbk"),"utf-8");
的意思是:
byte[] bytes=s.getBytes("gbk");
s=new String(bytes,"utf-8");
第一句是将s对应的gbk编码转出来,形成一个字节流
第二句是将这个字节流按照utf-8编码转为java字符串,因此相当于将gbk编码的字节流当做utf-8来使用,这样在中文中会出现乱码
你的问题是,接口返回的已经是utf-8 所以它必须是byte[] 流,如果是字符串的话就不好办了
Ⅱ 请问,将java文件的格式进行转换,由GBK编码转UTF-8
try{
Stringstr=newString("xx".getBytes("GBK"),"UTF-8");
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
你可以试试看,希望能帮到你。
Ⅲ java 怎么gbk转码utf-8
方法一:
思路:先转为Unicode,然后转为GBK
Stringutf8=newString(t.getBytes("UTF-8"));
System.out.println(utf8);
Stringunicode=newString(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
Stringgbk=newString(unicode.getBytes("GBK"));
System.out.println(gbk);
方法二:
publicstaticvoidmain(String[]args){
Stringstr="字符串编码转换";
try{
byte[]temp=str.getBytes("utf-8");//这里写原编码方式
byte[]newtemp=newString(temp,"utf-8").getBytes("gbk");//这里写转换后的编码方式
StringnewStr=newString(newtemp,"gbk");//这里写转换后的编码方式
System.out.println(newStr);
}catch(UnsupportedEncodingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
Ⅳ java utf 8转gbk
utf8和gb2312本来就是两个不同的字符集,对于中文来说,它们的编码并不会相同。如果刚开始的字符是utf8的,那么转换为gb2312后自然会是乱码;如果初始时是gb2312的中文,而后经utf8中间编码后又从utf8转为gb2312后不会是乱码的。
我想是这样的!
这有往篇文章,是关于java字符编码相关的,讲的很详细,有代码示例,你可以去看一下:http://vinter.javaeye.com/blog/670502
Ⅳ java怎么把UTF-8字符串转成GBK字符串
java不同编码之间进行转换,都需要使用unicode作为中转。
以utf-8转gbk为例,示例代码如下:
Stringt="这是一个字符串aaa111";
Stringutf8=newString(t.getBytes("UTF-8"));
System.out.println(utf8);
Stringunicode=newString(utf8.getBytes(),"UTF-8");
System.out.println(unicode);
Stringgbk=newString(unicode.getBytes("GBK"));
System.out.println(gbk);
Ⅵ java txt文件utf-8转GBK的问题
步骤一:直接把文件备份。
步骤二:打开文件,选择“另存为”。
步骤三:编码格式从“UTF-8"切换到“GBK”(默认)。保存即可。
Ⅶ java中GBK编码格式转成UTF8,用一段方法实现怎么做
java中GBK编码格式转成UTF8编码格式的方法如下:
publicstaticvoidmain(String[]args)throwsThrowable{
StringerrStr="errStr";
System.out.println(recover(errStr));
}
publicstaticStringrecover(Stringstr)throwsThrowable{
returnnewString(str.getBytes("GBK"),"UTF-8");
}
其中errStr就是乱码字符串,按照相反的顺序在编码芦喊(用gbk)、解码(用utf-8)回去,就能得到正确的字符串.
GBK、UTF-8是一种“编码格式”,是用来序列化或存储“编号(数字含族)”的一种“格式”;GBK和UTF-8都是用来序列化或存储unicode编码的数据的,但是分别是2种不同的格式; 除了格式不一样之外,所关谈哗弊心的unicode编码范围也不一样,utf-8考虑了很多种不同国家的字符,涵盖整个unicode码表,所以其存储一个字符的编码的时候,使用的字节长度也从1字节到4字节不等;而GBK只考虑中文——在unicode中的一小部分——的字符,的编码,所以算好了只要2个字节就能涵盖到绝大多数常用中文(2个字节能表示6w多种字符),所以存储一个字符的时候,所用的字节长度是固定的;