`

字符编码概谈

 
阅读更多

关于编码:

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)+" ");
    }
}
}
 
 

 

分享到:
评论

相关推荐

    易语言字符编码转换

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

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

    "VB转换字符编码(构造发送字符消息的准备工作)"这个标题涉及到的关键点是字符编码的转换以及如何为发送字符消息做好前期的准备工作。 首先,让我们了解字符编码的基本概念。字符编码是用来表示文本的一套规则,常见...

    中英文字符编码查询

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

    浅谈字符编码.pptx

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

    字符集和字符编码

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

    判断字符编码格式代码

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

    韩文字符编码总表.xlsx

    韩文字符编码总表

    工具-字符编码转换

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

    HTML字符编码大全

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

    关于 字符编码的 转换 知识

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

    字符编码转换处理工具

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

    字符编码查询之星

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

    字符编码解决方案

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

    字符编码查询工具.rar

    字符编码是计算机处理文本的关键技术,它决定了计算机如何理解、存储和显示各种语言的字符。在信息技术领域,正确理解和使用字符编码至关重要,因为不同的编码方式适用于不同的语言环境和应用场景。"字符编码查询...

    ISO字符编码 word格示

    ISO 字符编码 Word 格示 ISO 字符编码是国际标准化组织(ISO)制定的字符编码标准之一,它定义了一种基于 Unicode 的字符编码方式。ISO 字符编码 word 格示是指在 HTML 中使用 ISO 字符编码来表示特殊字符的方法。 ...

    字符编码文档

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

    字符编码 自动识别 编码类型

    字符编码是计算机处理文本的关键部分,它决定了如何将人类可读的字符转化为二进制数据进行存储和传输。在IT领域,尤其是编程和文件处理中,理解不同的字符编码至关重要,因为错误的编码设置可能导致乱码问题。本篇将...

    中英文字符编码查询助手.zip

    在IT领域,字符编码是一个非常基础且重要的概念,它涉及到计算机如何存储和处理文本信息。本资源"中英文字符编码查询助手"是一个实用工具,旨在帮助用户快速查询和理解字符编码,尤其对于处理多语言环境中的文本问题...

Global site tag (gtag.js) - Google Analytics