例子: “您好”的UTF-8 code 是 "E682A8E5A5BD".
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的编码生成字符串
String s=new String("欲转换字符串".getBytes("utf-8"),"utf-8");
其中
s.getBytes("UTF-8");
的意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8");
的意思是以UTF-8的编码生成字符串
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-07-07
首先,java在内存中是使用的双字节字符unicode的编码方式。
每个char对应的是32位的整型。
内存中对字符串操作其实不用考虑字符集。
只有在读取到内存中,和输出时,需要考虑字符集转换。
如果源代码中包含中文字符串,java编译器会按照编译时指定的字符集转换到unicode。
(不指定时,按当前操作系统的配置来)
当一个java程序从外部获取字符串时,使用Reader系列类,
会按照默认或者指定的字符集读取,然后转换到unicode。
也就是为啥我在读文件时 指定了 Charset.forName("GBK")
单纯的InputStream类不能处理字符集。
需要utf-8一般是为了输出。有两种方式,一种,使用Writer,内置了字符集转换能力。
选择合适的,然后在构造函数中指定即可。(有Writer是往OutputStream输出的,一下想不起名字了)
还有一种就是,自己用String的getBytes(charset)方法,得到转换过后的编码的二进制数组,然后对这个数组处理。比如我的代码中的FileOutputStream
汗,没说重点:String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
String utf8=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
每个char对应的是32位的整型。
内存中对字符串操作其实不用考虑字符集。
只有在读取到内存中,和输出时,需要考虑字符集转换。
如果源代码中包含中文字符串,java编译器会按照编译时指定的字符集转换到unicode。
(不指定时,按当前操作系统的配置来)
当一个java程序从外部获取字符串时,使用Reader系列类,
会按照默认或者指定的字符集读取,然后转换到unicode。
也就是为啥我在读文件时 指定了 Charset.forName("GBK")
单纯的InputStream类不能处理字符集。
需要utf-8一般是为了输出。有两种方式,一种,使用Writer,内置了字符集转换能力。
选择合适的,然后在构造函数中指定即可。(有Writer是往OutputStream输出的,一下想不起名字了)
还有一种就是,自己用String的getBytes(charset)方法,得到转换过后的编码的二进制数组,然后对这个数组处理。比如我的代码中的FileOutputStream
汗,没说重点:String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1");
String utf8=new String(iso.getBytes("ISO-8859-1"),"UTF-8");
第2个回答 2018-02-27
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的编码生成字符串本回答被网友采纳
String s=new String("欲转换字符串".getBytes("utf-8"),"utf-8");
其中
s.getBytes("UTF-8");
的意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8");
的意思是以UTF-8的编码生成字符串本回答被网友采纳
第3个回答 2013-09-12
String s=new String("欲转换字符串".getBytes(),"utf-8");
第4个回答 2015-06-05
String s=new String("欲转换字符串".getBytes(),"utf-8");