Java中如何把GBK编码的字符串转成utf-8编码

比如将GBK编码的字符串 “百度baidu” 转成utf-8编码的
String str1 = URLEncoder.encode("百度baidu","utf-8");

String newStr = new String(oldStr.getBytes("utf8"), "GBK");

String newStr = new String(oldStr.getBytes("GBK"), "utf8");

这种答案就不要贴上来了,懂点Java的人都知道这是错的

我先解释一下我对你的问题的理解 :
你的问题有点笼统 可以这么理解两个意思 : 一 ,你是想吧一个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了 还有什么不明白 可以问我
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-12-20
java不同编码之间进行转换,都需要使用unicode作为中转。
以utf-8转gbk为例,示例代码如下:
String t = "这是一个字符串aaa111";
String gbk= new String(t.getBytes( "GBK"));
System.out.println(gbk);
String unicode = new String(gbk.getBytes(),"GBK");
System.out.println(unicode);
String utf8= new String(unicode.getBytes("UTF-8"));
System.out.println(utf8);
第2个回答  2010-11-18
在java中有一个设定的内部语言设置,比如GBK或UTF-8,
jvm中的字符串只能以一种编码方式存在,你的命题就是伪命题。

当然存在硬盘里面就不一样了,可以以GBK方式存储,也可以以UTF-8方式存储。

在存为文件的时候,使用 String.getBytes("charSet")方式获取byte流,存入硬盘。本回答被网友采纳
第3个回答  2010-11-18
String str1 = URLEncoder.encode("百度baidu","utf-8");
第4个回答  2015-09-24
String str = "你要转换的字符串";
str = new String(str.getBytes("GBK"),"UTF-8");

Java中如何把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编码的...

java中GBK编码格式转成UTF8,用一段方法实现怎么做
java中GBK编码格式转成UTF8编码格式的方法如下:public static void main(String[] args) throws Throwable { String errStr = "errStr"; System.out.println(recover(errStr)); } public static String recover(String str) throws Throwable { return new String(str.getBytes("GBK")...

java中GBK编码格式转成UTF8,用一段方法实现怎么做
例如:String str = "java";\/\/转换编码 byte[] bys = str.getBytes("UTF-8");\/\/转换成字符串 String s = new String(bys,"UTF-8");

在java中gbk怎么转utf8编码
java中,编码是字节转字符的时候产生的不同映射造成的差异。那我们就可以利用这一点实现。例如,我们有一个gbk编码格式的字符串,那我们先把它的字节得到。String s = "abc";byte[] b = s.getBytes();再将其转为需要的编码格式。如utf-8 String newStr = new String(b,"utf-8")binggo~!!

java中GBK编码格式转成UTF8,用一段方法实现怎么做
String s = “xxx”;\/\/某gbk编码字符串 String sUrf8 = new String(s.getBytes("gbk"),"utf8");\/\/转换字符编码为utf8 利用String提供的构造方法就可以实现字符串的转码了 但是这种方法是需要些try-catch的因为getBytes("原字符集")这个方法是会抛异常的 ...

java中GBK编码格式转成UTF8,用一段方法实现怎么做
String str = new String(msg.getBytes("GBK"), "UTF-8");

Java 正确的做字符串编码转换
Java 中进行字符串编码转换的正确方法是理解字符串在 JVM 中的内部表示和操作系统的默认环境。Java 字符串使用统一的 unicode 表示(即 utf-16 LE),无论源码文件编码是GBK或UTF-8。当使用不同的源码文件编码时,编译器解析字符至 unicode 字节数组,显示时根据操作系统环境将 unicode 转为默认格式。...

java中GBK编码格式转成UTF8,用一段方法实现怎么做
不妨试一下下面的代码:String s = "浣犲ソ"; \/\/这是"你好"的gbk编码的字符串 String ss = new String(s.getBytes(), "UTF-8");System.out.println(ss);

java如何把string转为utf-8
java不同编码之间进行转换,都需要使用unicode作为中转。String str = "任意字符串";str = new String(str.getBytes("gbk"),"utf-8");备注说明:str.getBytes("UTF-8"); 意思是以UTF-8的编码取得字节 new String(XXX,"UTF-8"); 意思是以UTF-8的编码生成字符串 举例:public static String ...

java中GBK编码格式转成UTF8,用一段方法实现怎么做
String gbkStr = "你好"; \/\/假如这个字符串是GBK try { String u8Str = new String(gbkStr.getBytes("gbk"),"utf-8"); \/\/将gbk转成u8 } catch (UnsupportedEncodingException e) { e.printStackTrace();}

相似回答