`

2、字符编码

阅读更多

一、字符编码

 

  1. 字符流的出现为了方便操作字符
  2. 更重要的是加入了编码转换
  3. 通过子类转换流来完成
  4. InputStreamReader
  5. OutputStreamWriter
  6. 在两个对象进行构造的时候可以加入字符集

二、编码表的由来

 

  1. 计算机只能识别二进制数据,早期由来是电信号
  2. 为了方便应用计算机,让它可以识别各个国家的文字
  3. 就将各个国家的文字用数字来表示,并一一对应,形成一张表
  4. 这就是编码表

三、常见编码表

 

  1.  ASCII:美国标准信息交换码, 用一个字节的7位可以表示
  2. ISO8859-1:拉丁码表,欧洲码表,用一个字节的8位表示
  3. GB2312:中国的中文编码表
  4. GBK:中国的中文编码表升级,融合了更多的中文文字符号
  5. Unicode:国际标准码表,融合了多种文字,所有文字都用两个字节来表示,Java语言使用的就是unicode
  6. UTF-8:最多用三个字节来表示一个字符

四、转换流的编码应用

 

  1. 可以将字符以指定编码格式存储
  2. 可以对文本数据指定编码格式来解读
  3. 指定编码表的动作由构造函数完成
import java.io.*;
public class EncodeDemo {

	public static void main(String[] args) throws IOException {
		writeText();
		readText();
	}
	public static void readText() throws IOException
	{
		BufferedReader br = 
				new BufferedReader(new InputStreamReader(new FileInputStream("e:/mm.txt"),"utf-8"));
		String line = br.readLine();
		System.out.println(line);
	}
	public static void writeText() throws IOException
	{
		BufferedWriter bw = 
				new BufferedWriter(new OutputStreamWriter(new FileOutputStream("e:/mm.txt"),"gbk"));
		bw.write("你好");
		bw.close();
	}
}
//因为存和读的编码不一样,所以不能正确读取数据

 

五、编码和解码

 

String->byte[]

     str.getBytes();    str.getBytes(charsetName);

byte[]->String

     new String(byte[]);   new String(byte[] , charsetName);

 

import java.util.Arrays;

public class EncodeDemo {

	public static void main(String[] args) throws Exception{
		byte[] b1 = "你好".getBytes();
		System.out.println(Arrays.toString(b1));
		String s1 = new String(b1);
		System.out.println(s1);
		
		byte[] b2 = "你好".getBytes("utf-8");
		System.out.println(Arrays.toString(b2));
		String s2 = new String(b2,"utf-8");
		System.out.println(s2);
		
		//如果解码错了,需要重新解码
		byte[] b3 = "你好".getBytes("utf-8");
		System.out.println(Arrays.toString(b3));
		String s3 = new String(b3,"iso8859-1");
		System.out.println(s3);
		
		byte[] b4 = s3.getBytes("iso8859-1");
		System.out.println(Arrays.toString(b4));
		String s4 = new String(b4,"utf-8");
		System.out.println(s4);
	}
}

 

六、特例

 

    打开记事本,输入 联通 二字,然后保存,关闭记事本,打开保存的文档,会看到只有一个小黑框

 

    原因:联通的第一二个字节、第三四个字节的起始部分的都是"110"和"10",正好与UTF8规则里的两字节模板是一致的,于是再次打开记事本时,记事本就误认为这是一个UTF8编码的文件

分享到:
评论

相关推荐

    字符编码过滤器 字符编码转换 post字符转换

    本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...

    易语言字符编码转换

    在处理字符串和文本数据时,字符编码转换是一个常见的需求,因为不同的系统和应用可能使用不同的字符编码标准来表示文本。本资源提供了易语言字符编码转换的源码,帮助开发者理解和实现这一功能。 字符编码是用来...

    VB转换字符编码(构造发送字符消息的准备工作)

    在VB(Visual Basic)编程中,处理字符编码是至关重要的,尤其是在进行进程间通信或者数据传输时。"VB转换字符编码(构造发送字符消息的准备工作)"这个标题涉及到的关键点是字符编码的转换以及如何为发送字符消息做好...

    HTML特殊字符编码

    HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码HTML特殊字符编码

    字符编码查询工具

    字符编码是计算机科学领域中的重要概念,用于将人类可读的字符转换为计算机可以处理的数字形式。在本文中,我们将深入探讨字符编码查询工具,包括它的功能、工作原理以及如何使用。 首先,"字符编码查询工具"正如其...

    字符集和字符编码

    字符集和字符编码 字符集是指计算机系统支持的所有抽象字符的集合,包括文字、符号、图形符号、数字等。字符编码是将字符转换为二进制数据的过程,反之,解码是将存储在计算机中的二进制数据解析显示出来。 1. ...

    中英文字符编码查询

    中英文字符编码查询 软件介绍: 该软件能快速查询中英文字符的ASCII、区位码、GB2312 码、Big5 码、GBK 内码、Unicode 码、UTF-8 码和 UTF-16 码。体积小、效率高、使用方便、批量转换、即输即得和多进制显示等。...

    判断字符编码格式代码

    根据给定文件的信息,我们可以总结出以下关于“判断字符编码格式代码”的相关知识点: ### 一、背景介绍 在计算机科学领域,字符编码是将文本转换为数字表示的方法,以便于计算机存储和处理。常见的字符编码包括...

    字符集和字符编码详解

    字符集和字符编码是计算机处理文字的基础,它们决定了如何在二进制的世界中表示和传输人类语言。本文将深入探讨这两个概念,以及相关的知识点。 首先,我们要理解什么是字符集。字符集,顾名思义,就是一个集合,...

    工具-字符编码转换

    在“工具-字符编码转换”中,我们提到了两个文件:GB2UTF8.exe和说明文件.txt。GB2UTF8.exe很可能是一个用于将GBK编码的文本文件转换为UTF-8编码的命令行工具。这种工具通常接收输入文件和输出文件作为参数,执行...

    韩文字符编码总表.xlsx

    韩文字符编码总表

    HTML字符编码大全

    为了能在文本中直接使用这些特殊字符,就需要使用字符编码来替代。 在HTML中,有两种主要的字符编码方式:实体引用(Entity References)和数字字符引用(Numeric Character References)。实体引用以"&"开头,后面...

    关于 字符编码的 转换 知识

    ### 关于字符编码的转换知识 #### 一、引言 字符编码是在计算机科学领域内一个重要的基础概念,它涉及到如何在计算机系统中存储、处理和传输文本信息。随着信息技术的发展,不同地区和文化背景下的用户对字符的...

    深入理解字符编码(字符集 字符编码 字符显示 乱码问题)

    文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案

    字符编码解决方案

    字符编码是计算机处理文本的关键,尤其在多语言环境中,正确的编码解决方案显得尤为重要。本文主要针对C++编程中遇到的乱码问题,从编码原理、Unicode的意义出发,详细讲解了四个典型场景下的乱码问题及其解决方案。...

    字符编码文档

    字符编码是计算机科学领域中一个基础且重要的概念,它涉及到信息的存储、传输和处理。字符编码定义了如何将文字、符号等字符转换成二进制形式,以便计算机理解和处理。本文将深入探讨字符与编码的概念、发展历史、...

    不同字符编码转换

    在IT领域,字符编码是处理文本数据的关键环节。不同的字符编码标准用于表示各种语言和特殊符号,确保数据在不同系统间正确传输和显示。这里我们将深入探讨标题和描述中提到的一些主要字符编码格式:UTF-8、UTF-7、...

    字符编码转换处理工具

    字符编码是计算机科学中的一个重要概念,它涉及到如何在数字系统中表示和处理文本。在我们的日常生活中,无论是浏览网页、编辑文档还是发送电子邮件,字符编码都在背后默默地工作,确保我们看到的文字能正确显示。...

Global site tag (gtag.js) - Google Analytics