`

字符编码概谈

 
阅读更多

关于编码:

1为什么有编码?

在显示器上看见的文字、图片等信息在电脑里面其实并不是我们看见的样子,即使你知道所有信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1,凹的地方代表数字0。硬盘只能用0和1来表示所有文字、图片等信息。

 

因为计算机本质是计数以及实现数的数学逻辑运算。要想使其能输出和保存人类语言符号,就需要将语言文字符号进行编码,以保存和显示。这样计算机中的这样的一个数就有了两层含义:数值和符号码。

2各种编码关系

最早的符号码是asc码,它用0-127的数(1个byte)表示不同字符。这种西方编码没有考虑中国和其他国家的语言文字,因此各国出于需要,纷纷在asc的基础上,对其进行扩展,开发自己的编码方式。gbk可以看是一种适用与中文的编码方式。但由于各个标准的不一致,导致常出现乱码。

后来,国际发布unicode编码方式,统一所有的字符都由两个byte表示,并且其他所有的字符都统统收录其中,以实现统一。

 

如字母 a 的不同标准编码如下:

asc: 0x61

Gbk:       0x61

Unicode: ox 00 61

utf-8:0x61

汉字“我”:

asc:无

gbk: 0x ce d2

Unicode : 0x62 11.

utf-8:0xe6 88 91

 

3.Utf-8.unicode 和utf-16

 由于unicode编码方式和asc码不能兼容,因此为了使得一些旧软件仍能使用,故采用utf-8的方式对unicode编码进行修改,向asc码兼容,具体做法是采用变长编码。而常说的unicode就是utf-16be(大字节序)。

 

Java中采用unicode编码(utf-16be),并且可以通过String.getBytes(“XXX”)函数得到该String的XXX编码的byte数组。可以比较不同的编码方式的数值的不同。 

参考代码:

 

 

 

import java.io.UnsupportedEncodingException;
 
public class CharSet {
    String s = "a";
   
    public static void main(String[] args) throws UnsupportedEncodingException{
         CharSet test = new CharSet();
         test.bytesprint();
         test.getByte();
    }
   
    public void bytesprint(){
       for(int i=0 ;i <s.length();i++){
           char c = s.charAt(i);
           int high = c>>>8 & 0xff;
           int low = c & 0xff;
           System.out.print(Integer.toHexString(high)+" "+ Integer.toHexString(low)+" ");
       }
       System.out.println();
    }
public void getByte() throws UnsupportedEncodingException{
    byte[] bytes = s.getBytes("utf-8");
    for(int i=0;i<bytes.length; i++){
       int c = bytes[i] & 0xff;
           System.out.print(Integer.toHexString(c)+" ");
    }
}
}
 
 

 

分享到:
评论

相关推荐

    易语言字符编码转换

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

    字符编码查询工具

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

    中英文字符编码查询

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

    浅谈字符编码.pptx

    ### 字符编码概述 字符编码是信息技术领域的一个重要概念,涉及到如何将人类可读的文本转换成计算机能够处理的形式。本文旨在深入探讨字符编码的基本原理及其常见类型,以帮助读者理解不同编码方式的特点和应用场景...

    字符集和字符编码

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

    判断字符编码格式代码

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

    字符集和字符编码详解

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

    韩文字符编码总表.xlsx

    韩文字符编码总表

    工具-字符编码转换

    本文将基于“工具-字符编码转换”的主题,深入探讨字符编码的概念、常见编码格式、字符编码转换工具以及如何进行实际操作。 字符编码是计算机表示和处理文字的一种方式,它将各种字符与二进制数字对应起来。常见的...

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

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

    关于 字符编码的 转换 知识

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

    字符编码笔记.doc

    字符编码是计算机处理文本的基础,它定义了字符与二进制数字之间的对应关系。本文将深入探讨ASCII、Unicode以及UTF-8三种字符编码系统,帮助理解它们的关系和各自的特点。 首先,ASCII(American Standard Code for...

    中英文字符编码查询工具

    在IT领域,字符编码是计算机处理文本数据的基础。字符编码定义了如何将字符与数字(通常是整数)关联,使得计算机能够存储、处理和传输文本信息。本工具“中英文字符编码查询工具”专注于帮助用户快速查询中文和英文...

    字符编码查看器(字符编码转换)v1.4.2最新绿色免费版

    字符编码查看器是一款非常实用优秀的编程软件。这款软件支持编码之间的相互转换,可以帮助用户快速查看编码等。功能非常强大。需要的朋友可以前来本站下载。 软件介绍 字符编码查看器是一款可以帮助你轻松快速的...

    不同字符编码转换

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

    字符编码查询之星

    《字符编码查询之星》是一款专为处理字符编码问题设计的实用工具,主要功能在于实现Unicode、UTF-8、GBK和BIG5编码之间的相互转换。在信息化时代,字符编码的兼容性和准确性是数据交换的重要环节,这款软件的出现,...

    完整版字符编码查看器.rar

    字符编码是计算机处理文本的基础,不同的编码方式决定了如何表示和解析文字。在信息化时代,理解和掌握字符编码至关重要,尤其对于编程、数据交换以及国际化的文本处理。"完整版字符编码查看器"是一款实用工具,它...

    字符编码文档

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

Global site tag (gtag.js) - Google Analytics