Java转utf8
① 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多种字符),所以存储一个字符的时候,所用的字节长度是固定的;
② 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中如何把GBK编码的字符串转成utf-8编码
我先解释一下我对你的问题的理解
:
你的问题有点笼统
可以这么理解两个意思
:
一
,你是想吧一个gbk编码的字符串用utf-8格式来编码
String
s
=
new
String
("全国".getBytes("GBK"),"GBK");
虽然这个时候的s是GBK编码的
但是s还是中文字符的
所以
上面这位同胞用
new(s.getBytes("GBK"),"UTF-8")的方式肯定是错的
应该用
String
s1
=
new
String
(s.getBytes("UTF-8"),"UTF-8")
这样s1就是UTF-8编码的字符串了
二,如果是遇见乱码问题
比如
String
s
=
new
String
("全国".getBytes("GBK"),"GBK");
这样的s就是gbk编码的
现在你要把GBK格式的编码用UTF-8去编码
肯定就会出现乱码
String
s2
=
new
String(s.getBytes("GBK"),"UTF-8");
这个s2肯定是乱码的
而且这样就根本解不出来了
系统出现的乱码显示的时候才会出现编码错误
所以
一般出现乱码
只要把输入流换个编码解析一下就ok了
还有什么不明白
可以问我
④ 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中gbk怎么转utf8编码
java中,编码是字节转字符的时候产生的不同映射造成的差异。那我们就可以利用这一点实现。例如,我们有一个gbk编码格式的字符串,那我们先把它的字节得到。
String s = "abc";
byte[] b = s.getBytes();
再将其转为需要的编码格式。如utf-8
String newStr = new String(b,"utf-8")
binggo~!!
⑥ java怎么设置为utf-8的编码
要让一个
Java
源文件打开时编码格式为
UTF-8,需要做2件事情:
1)设置Java
源文件的默认编码格式为UTF-8;
2)设置workspace的编码格式为UTF-8。
相应设置如下:
设置
Java
源文件的默认编码格式为
UTF-8
在
Windows->Preference
页面中,选择
General->Content
Types
在右边的框中,选择
Text->Java
Source
File,将下面的
Default
Encoding
改为
UTF-8
设置
workspace
的编码格式为
UTF-8
在
Windows->Preference
页面中,选择
General->WorkSpace
选择右侧框中的
Text
File
encoding,改为
UTF-8
设置完这2处,默认打开
Java
源文件就是UTF-8编码了。
⑦ java中GBK编码格式转成UTF8,用一段方法实现怎么做
GBK编码是一个中文2个字节,而UTF-8编码是一个中文3个字节,当我们调用getBytes("UTF-8")方法时,会通过计算来增加字节。正常的情况下是两个两个的转化,但是当字节是奇数时最后1个字节转字符就会计算错误,然后直接赋予最后这个字符为?。所以我们需要创建ISO-8859-1编码的字符串,保证一个输入只有一个输出。
import java.io.UnsupportedEncodingException;
public class new_122 {
public static void main(String[] args) throws UnsupportedEncodingException {
String gbk ="我来了";
String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
System.out.println(new String(iso.getBytes("ISO-8859-1"),"UTF-8"));
}
}