`

字符编码概谈

 
阅读更多

关于编码:

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

 

分享到:
评论

相关推荐

    浅谈字符编码.pptx

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

    字符集和字符编码详解

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

    韩文字符编码总表.xlsx

    韩文字符编码总表

    关于 字符编码的 转换 知识

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

    字符编码笔记.doc

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

    中英文字符编码查询工具

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

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

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

    字符编码转换处理工具

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

    字符编码查询之星

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

    VC++编程实现转换文本文件的字符编码

    VC++编程实现转换文本文件的字符编码 本文介绍了使用VC++编程实现转换文本文件字符编码的方法,使用该方法,可使文本文件的字符编码在 Unicode、Big5、UTF8、GBK 等编码之间实现自由转换。另外,本文还介绍了一些...

    字符编码文档

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

    字符编码详情.pdf

    ### 字符编码基础知识 #### 一、概述 字符编码是计算机科学中的一项基本技术,用于将文字信息转换成数字形式以便计算机处理。随着信息技术的发展,全球化的趋势要求计算机能够处理不同语言的文字信息,这就需要一...

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

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

    字符编码解码工具字符编码,解码

    字符编码与解码是计算机科学中的重要概念,尤其在处理文本数据时不可或缺。字符编码是将字符转换为二进制数的过程,以便计算机能够存储、处理和传输这些字符。解码则是相反的过程,即将二进制数转换回可读的字符形式...

    解决字符编码的过滤器

    ### 解决字符编码的过滤器知识点详解 #### 一、字符编码基础概念 在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制...

    java_字符编码 Javajava_字符编码问题

    ### Java 字符编码详解 #### 一、Java 字符编码基础概念 在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。字符编码是计算机内部表示字符的一种方式,它涉及到如何将人类可读的文字转换...

    常用字符集及字符编码简介

    字符集与字符编码是计算机处理文字的基础,它们决定了如何用二进制表示各种语言的字符。在信息技术领域,理解和掌握字符集与字符编码至关重要,因为它们直接影响到数据的存储、传输和显示。以下是对这些概念的详细...

    HTML特殊字符编码大全

    - 虽然大部分现代浏览器会自动修正未编码的特殊字符,但为了代码的健壮性和标准化,建议始终使用字符编码。 - 不要在JavaScript字符串中直接使用特殊字符编码,应使用其对应的Unicode转义序列,如`\u00A9`表示版权...

    工具-字符编码转换

    标题“工具-字符编码转换”指的是一个用于处理字符编码转换的软件工具,它可能帮助用户在不同的字符编码之间进行转换,以解决不同系统或程序之间的兼容性问题。字符编码是计算机存储和显示文本的一种方式,常见的有...

Global site tag (gtag.js) - Google Analytics