java中的编码问题
来源:互联网 发布:微云同步盘mac版 编辑:程序博客网 时间:2024/05/18 12:39
文本文件就是字节序列,可以是任意字节的字节序列。如果在中文机器上直接创建文本文佳,
那么该文本文件只认识ANSI编码。中文系统下,ANSI编码代表GBK编码。
如果是由其他地方创建的文本文件 再拷贝出来的则可以识别任意的编码
UTF-8编码 汉字占3个字节 英文占一个
gbk编码 汉字占2个字节 英文占1个
UTF-16be编码是java中的编码 汉字和英文都是占两个字节
.getBytes();将字符串变成byte类型
integer.toHexString();将字节流变成16进制的int类型
用什么编码将字符串变成字节流 就要用同样的编码才能将其变回去
new String(“dd”,"UTF-8");可以自己选择编码方式 缺省则是默认工程属性中默认的编码
看下边程序可以深入理解Java编码:
public class EncodeDemo {public static void main(String[] args) throws UnsupportedEncodingException {String s="哈喽ABC";//转换成字节序列,用的是项目默认编码gbkbyte[] bytes1=s.getBytes();System.out.println("项目默认编码(gbk):");for (byte b : bytes1) {//把字节转换成了int以16进制方式显示// & 0xff是为了把前面的24个0去掉只留下后八位System.out.print(Integer.toHexString(b & 0xff)+" ");}System.out.println();byte[] bytes2=s.getBytes("gbk");System.out.println("gbk编码方式:");//gbk编码中文占两个字符,英文占用一个字符for (byte b : bytes2) {System.out.print(Integer.toHexString(b & 0xff)+" ");} System.out.println();byte[] bytes3=s.getBytes("utf-8");System.out.println("utf-8编码方式:");//utf-8编码中文占三个字符,英文占一个字符for (byte b : bytes3) {System.out.print(Integer.toHexString(b & 0xff)+" ");} System.out.println();//Java是双字节编码,utf-16be byte[] bytes4=s.getBytes("utf-16be"); System.out.println("utf-16be编码方式:");//utf-16be中文占两个字符,英文占两个字符 for (byte b : bytes4) { System.out.print(Integer.toHexString(b & 0xff)+" ");} /* * 当你的字节序列是某种编码格式时,把字节序列转换成 * 字符串时必须也是某种编码格式,否则会出现乱码 */ String str1=new String(bytes4); System.out.println(); System.out.println("字节序列转换字符串编码方式不一致时乱码:");//字节序列是utf-16be编码模式,转换成字符串时项目默认编码gbk,此时出现乱码情况 System.out.println(str1); //字节序列转换成字符串使用字节序列的编码方式,则不会乱码 String str2=new String(bytes4,"utf-16be"); System.out.println("字节序列转换成字符串编码方式一致时:"); System.out.println(str2);}}运行结果如下:
0 0
- Java中的编码问题
- java中的编码问题
- java中的编码问题
- java中的编码问题
- java中的编码问题
- Java中的编码问题
- JAVA中的编码格式问题
- Java应用中的编码问题
- Java编程中的编码问题
- Java应用中的编码问题
- Java应用中的编码问题
- JAVA 开发中的编码问题
- Java编程中的编码问题
- Java应用中的编码问题
- Java应用中的编码问题
- Java 中的中文编码问题
- Java中的中文编码问题
- JAVA中的中文编码问题
- 背包dp
- 练习二1016
- 图的遍历:DFS和BFS算法
- MYSQL之数据类型
- 广度/宽度优先搜索(BFS)
- java中的编码问题
- 协议(protocol)
- tcpdump详解
- 个人学习-java-.isEmpty()
- 使用cookie实现记录浏览商品的过程并能够清空浏览记录(简单的小程序不涉及到数据库的调取)
- 【UNET自学日志】Part2 旋转同步
- NSRunLoop详解
- [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:31:compile (default-co
- 深度优先搜索