Java字符串编码一些知识总结:

  1. package com.dcz.io;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4.  
  5. public class EncodeDemo {
  6.  
  7. public static void main(String[] args) throws UnsupportedEncodingException {
  8.  
  9. String str = "中国ABC";
  10. // 转换成字节数组是项目默认的编码GBK
  11. byte[] byteArray = str.getBytes();
  12. for(byte b : byteArray){
  13. System.out.print(Integer.toHexString(b & 0xff) + " ");
  14. }
  15.  
  16. System.out.println();
  17.  
  18. // 显示转换为GBK编码
  19. byte[] byteArray2 = str.getBytes("gbk");
  20. for(byte b: byteArray2){
  21. System.out.print(Integer.toHexString(b & 0xff) + " ");
  22. }
  23.  
  24. System.out.println();
  25.  
  26. // 显示转换为UTF-8编码(在UTF-8编码中,中文占用3个字节,英文占用一个字节)
  27. byte[] byteArray3 = str.getBytes("utf-8");
  28. for(byte b : byteArray3){
  29. System.out.print(Integer.toHexString(b & 0xff) + " ");
  30. }
  31.  
  32. System.out.println();
  33.  
  34. // 显示转换为UTF-16be(在此编码上,中文和英文各站两个字节)
  35. byte[] byteArray4 = str.getBytes("utf-16be");
  36. for(byte b : byteArray4){
  37. System.out.print(Integer.toHexString(b & 0xff) + " ");
  38. }
  39.  
  40. /**
  41. * 当你的字节序列是某种编码时候,想把字节序列变成字符串也需要使用某种编码,否则乱码。
  42. */
  43.  
  44. System.out.println();
  45.  
  46. // 乱码原因是由于转换和反转编码不统一
  47. String str1 = new String(byteArray3);
  48. System.out.println(str1);
  49.  
  50. // 不乱码原因是由于转换和反转使用了统一格式编码
  51. String str2 = new String(byteArray3, "utf-8");
  52. System.out.println(str2);
  53.  
  54. }
  55.  
  56. }

总结:从上面的测试代码中可以了解到字符乱码是和字符编码有直接关系。

Java Io 之 编码的更多相关文章

  1. java IO之 编码 (码表 编码 解码 转换流)

    编码 什么是编码? 计算机中存储的都是二进制,但是要显示的时候,就是我们看到的却可以有中国 ,a  1 等字符 计算机中是没有存储字符的,但是我们却看到了.计算机在存储这些信息的时候,根据一个有规 则 ...

  2. Java—IO流 文件的编码

    文件的编码 package cn.test; import java.io.UnsupportedEncodingException; public class Demo15 { public sta ...

  3. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  4. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  5. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  6. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  7. java IO流 之 字符流

    字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...

  8. java IO流 之 字节流

    一.file类的常用操作 File file=new File("E:\\test\\javaIo"); System.out.println(file.isDirectory() ...

  9. Java IO工作机制分析

    Java的IO类都在java.io包下,这些类大致可分为以下4种: 基于字节操作的 I/O 接口:InputStream 和 OutputStream 基于字符操作的 I/O 接口:Writer 和 ...

随机推荐

  1. 1 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建

    preface 近来公司利润上升,购买了10几台服务器,趁此机会,把mysql的主从同步的架构进一步扩展,为了适应日益增长的流量.针对mysql架构的扩展,先是咨询前辈,后和同事探讨,准备采用Mysq ...

  2. CSS-论css如何纯代码实现内凹圆角

    background-image: radial-gradient(200px at 50px 0px, #fff 50px, #4169E1 50px); 这是做内凹圆角的核心代码,就是背景图的ra ...

  3. 深入JVM-常用Java虚拟机参数

    一.跟踪调试参数 1.1 跟踪垃圾回收-读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时候,如果垃圾回收频繁出现,或者占用了太长的CPU时间,就不得不引起重视.此时,就需要一 ...

  4. js009-客户端检测

    js009-客户端检测 本章内容: 1.使用能力检测 2.用户代理检测的历史 3.选择检测方式 一般不使用客户端检测. 9.1 能力检测 也称特性检测.基本模式如下: if(object.proper ...

  5. CentOS7搭建hadoop2.6.4+HBase1.1.6

    环境: CentOS7 hadoop2.6.4两个节点:master.slave1 HBase1.1.6 过程: hadoop安装目录:/usr/hadoop-2.6.4 master节点,hadoo ...

  6. c# 操作datatable

    1.创建 datatable DataTable dt=new Datable();// 可以给表创建一个名字,tb 2.给表加个列名: dt.Columns.Add("id", ...

  7. datatable group by

    对datatable 里面的数据按某一特定的栏位进行分组并且按照某一规则 var query = from t in rate.AsEnumerable()   group t by new { t1 ...

  8. js操作DOM动态添加和移除事件

    非IE下,注意事件名不带on,如onclick为click 添加事件:DOM对象.addEventListener('事件名',函数名,true/false); 删除事件:DOM对象.removeEv ...

  9. ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题

    ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 标签: myeclipsejavawebWeb App Libraries 2013-10-16 1 ...

  10. Python之路【第九篇】堡垒机基础&数据库操作

    复习paramiko模块 Python的paramiko模块,是基于SSH用于连接远程服务器并执行相关操作. SSHClient #!/usr/bin/env python #-*- coding:u ...