java String字符串转UTF-8 hexcode怎么转?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java String字符串转UTF-8 hexcode怎么转?相关的知识,希望对你有一定的参考价值。

例子: “您好”的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的编码生成字符串
参考技术A 首先,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");
参考技术B 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的编码生成字符串
参考技术C String s=new String("欲转换字符串".getBytes(),"utf-8"); 参考技术D String s=new String("欲转换字符串".getBytes(),"utf-8");

java里面byte数组和String字符串怎么转换

参考技术A //string 转 byte[]
String str = "问题";
byte[] srtbyte = str.getBytes();
// byte[] 转 string
String res = new String(srtbyte);
System.out.println(res);

//当然还有可以设定编码方式的
String str = "问题";
byte[] srtbyte = null;
try
srtbyte = str.getBytes("UTF-8");
String res = new String(srtbyte,"UTF-8");
System.out.println(res);
catch (UnsupportedEncodingException e)
// TODO Auto-generated catch block
e.printStackTrace();
本回答被提问者和网友采纳
参考技术B new String(byte[] b, String charset)

以上是关于java String字符串转UTF-8 hexcode怎么转?的主要内容,如果未能解决你的问题,请参考以下文章

Java的中文处理 - String转换bytes和bytes转String

java怎么把utf-8的字符串转换为gb2312格式

c# byte数组转string

Java 中文字符串编码之GBK转UTF-8

java文件转码后,每行后面多了很多零字符

java怎么把utf-8的字符串转换为gb2312格式