JAVA字符串与字符编码处理
来源:互联网 发布:我所理解的生活 知乎 编辑:程序博客网 时间:2024/05/16 04:21
图中详细描述了 字符串类String 与 文件File ,ByteBuffer,CharBuffer,byte[] 数组,char[]数组之间的互相转换。
几点心得:
1)String类始终是以Unicode编码形式存储.
2)注意String.getBytes()的使用:
如果不带字符集参数,就会依赖于JVM的字符集编码,LINUX上一般为UNICODE,WINDOWS下一般为GBK.(要想改变JVM缺省字符集编码,启动JVM时用选项-Dfile.encodeing=UTF-8.
为了安全起见,建议始终带参数调用,例如:String s ; s.getBytes("UTF-8")。
3)Charset类非常好用,
Charset.encode 是编码,即把String按你指定的字符集编码格式进行编码后输出字节数组。
Charset.decode 是解码,即把一个字节数组按你指定的字符集编码格式进行解码后输出成字符串。
举例如下:
String s = Charset.defaultCharset().displayName();
String s1 = "我喜欢你,My Love";
ByteBuffer bb1 = ByteBuffer.wrap(s1.getBytes("UTF-8"));
for(byte bt:bb1.array()){
System.out.printf("%x",bt);
}
//char[]用法
char[] chArray={'I','L','o','v','e','你'};
//CharBuffer用法
CharBuffer cb = CharBuffer.wrap(chArray);
//重新定位指针
cb.flip();
String s2= new String(chArray);
//ByteBuffer用法
ByteBuffer bb2 = Charset.forName("utf-8").encode(cb);
// 利用Charset编码为指定字符集
ByteBuffer bb3 = Charset.forName("utf-8").encode(s1);
byte [] b = bb3.array() ;
// 利用Charset按指定字符集解码为字符串
ByteBuffer bb4= ByteBuffer.wrap(b);
String s2 = Charset.forName("utf-8").decode(bb4).toString();
几点心得:
1)String类始终是以Unicode编码形式存储.
2)注意String.getBytes()的使用:
3)Charset类非常好用,
举例如下:
0 0
- JAVA字符串与字符编码处理
- JAVA字符串与字符编码处理
- JAVA字符串与字符编码处理的终极解决
- JAVA字符串与字符编码处理的终极解决
- java后台与jsp前台特殊字符处理(字符串编码与解码)
- java 字符编码处理
- java字符编码处理
- java中的字符编码处理
- java处理字符编码的常见问题(最近在弄字符串设置编码写入文件)
- php编码与字符串处理
- Java中关于字符与字符串的处理
- java字符串与字符
- java 字符 字节 与 编码
- java字符解码与编码
- Java String字符串处理和字符处理
- java中用过滤器处理字符编码问题
- java对字符的编码处理
- java对字符的编码处理
- Apache更换ssl https证书问题注意事项
- 获取UUID
- 源码解读Mybatis List列表In查询实现的注意事项
- 开源流媒体
- 拼音搜索
- JAVA字符串与字符编码处理
- DynamicWrapper.dll、dynwrapx.dll测试(WinXP、Win7下均可跑)(2013-08-07 13:21:55)
- log4j详解与实战
- html5手机网站需要加的那些meta/link标签,html5 meta全解
- Android 颜色渲染(三) Shader颜色渲染
- Android Studio掌握
- 单选按钮
- Ubuntu 14.04 LTS 版升级到 GCC 4.9.2
- 【MATLAB】用MATLAB绘制奥运五环