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

package com.dcz.io;

import java.io.UnsupportedEncodingException;

public class EncodeDemo {

	public static void main(String[] args) throws UnsupportedEncodingException {

		String str = "中国ABC";
// 转换成字节数组是项目默认的编码GBK
byte[] byteArray = str.getBytes();
for(byte b : byteArray){
System.out.print(Integer.toHexString(b & 0xff) + " ");
} System.out.println(); // 显示转换为GBK编码
byte[] byteArray2 = str.getBytes("gbk");
for(byte b: byteArray2){
System.out.print(Integer.toHexString(b & 0xff) + " ");
} System.out.println(); // 显示转换为UTF-8编码(在UTF-8编码中,中文占用3个字节,英文占用一个字节)
byte[] byteArray3 = str.getBytes("utf-8");
for(byte b : byteArray3){
System.out.print(Integer.toHexString(b & 0xff) + " ");
} System.out.println(); // 显示转换为UTF-16be(在此编码上,中文和英文各站两个字节)
byte[] byteArray4 = str.getBytes("utf-16be");
for(byte b : byteArray4){
System.out.print(Integer.toHexString(b & 0xff) + " ");
} /**
* 当你的字节序列是某种编码时候,想把字节序列变成字符串也需要使用某种编码,否则乱码。
*/ System.out.println(); // 乱码原因是由于转换和反转编码不统一
String str1 = new String(byteArray3);
System.out.println(str1); // 不乱码原因是由于转换和反转使用了统一格式编码
String str2 = new String(byteArray3, "utf-8");
System.out.println(str2); } }

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

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. [转发]黑苹果修改DSDT彻底解决关机不断电和睡眠问题

    1. 在 Method (_PTS, 1, NotSerialized)之前添加一个OperationRegion (PMRS, SystemIO, 0x0430, 0×13),如下: Operati ...

  2. java编解码技术,netty nio

    对于java提供的对象输入输出流ObjectInputStream与ObjectOutputStream,可以直接把java对象作为可存储 的字节数组写入文件,也可以传输到网络上去.对与java开放人 ...

  3. re正则表达式13_review of regex symbols

    Review of Regex Symbols This chapter covered a lot of notation, so here’s a quick review of what you ...

  4. JavaWeb学习笔记——jsp:setproperty和getproperty

  5. JavaScript 日历

    效果图: <html> <head> <script language="javascript"> /*@ 解题思路: .计算本月有多少天(先要 ...

  6. Flash性能优化

    Adobe Scout All the internal operations of Flash Player. Flash Builder Actionscript 3 code level pro ...

  7. SimPholders Xcode快速访问沙盒

    SimPholders

  8. Hmmer安装与使用

    Hmmer的安装与使用   从功能基因研究的角度来讲,相关的搜索,比如从序列数据库中,找同源的序列,或者对一个对一个新的基因功能进行鉴定,使用hmmer比使用blast有着更高的灵敏度已经更高的搜索速 ...

  9. JavaScript数据操作--原始值和引用值的操作本质

    我的一句话总结:原始值不管是变量赋值还是函数传递都不会改变原值,引用值不管是变量赋值还是函数传递,如果新变量重新赋值,则不会影响原引用值,如新变量是直接操作,就会影响原引用值. 首先明确,值和类型是两 ...

  10. Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试

    参考地址: http://www.xiaoxiangzi.com/Programme/PHP/3348.html http://www.cnblogs.com/ganiks/p/yii2-restfu ...