`
跳跃的心灵
  • 浏览: 13741 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

字符编码(转载,有空研究)

阅读更多
凡是在应用中涉及到中文了,都会遇到字符编码问题。之前没有仔细研究,脑中只有一个比较敷衍的概念——在交互中统一字符编码就不会出问题了~具体字符编码会出什么问题,一直没好好研究下。(今早看到华莽邮件里又有人为了字符编码抓狂了,同情下……)




    首先要清楚一下几个概念:




    字节(byte):计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。

    字符(Character):是文字与符号的总称,包括文字、图形符号、数学符号等。

    字符集(Charset):即字符的集合,规定了在这些集合里面有哪些字符。

    字符编码(Encoding):就是规定用一个字节还是多个字节来存储一个字符,用固定的二进制码值表示某个字符。




     目前常见的字符集有ASCII、ISO-8859-1、Unicode、GB2312、GBK、BIG5等。各自都有各自的编码方式,比如“中华”这个词在GBK中编码为:“\xd6\xd0\xbb\xaa”,在Unicode中为:“\u4e2d\u534e”。当然各自的特性也不同,这里就不介绍了。




     在所有这些字符集中,Unicode比较特殊,因为它的野心比较大,想囊括所有语言的字符作为统一字符集,所以编码就不能只用小小一个字节了,所有它能表示的字符都编码为两个字节。但是英语系的家伙们不干了,他们的语言仅仅26个字母,也要用2个字节来编码,传输时岂不是浪费大了!于是想出了UTF-8、UTF-16等针对Unicode的二次编码方式。UTF-8对传统ASCII字符用一个字节来编码,对中文这样的字符用3个字节来编码(我们亏了~)。




     出现乱码问题主要在数据的表现上,也就是显示设备在根据数据中的字符编码值找出相应的字符并加以显示时,使用了错误的编码方式。这个问题只要在通信中交互数据时标记清楚数据所使用的编码方式。在xml中,可以设置:


Xml代码
<?xml version="1.0" encoding="UTF-8"?> 

<?xml version="1.0" encoding="UTF-8"?>

     在HTTP传输中可以在报头设置字符集编码方式,HTML也可以标记字符编码,这样浏览器就会自动选择了……




     字符编码不仅仅会引起乱码麻烦,在数据处理中也会惹麻烦。例如Python在“对外”(包括标准输出流)发送Unicode编码的文本数据时,会默认的使用ASCII字符集的codecs将字符转换成ASCII编码,如果含有非ASCII字符集的字符,就会报“UnicodeEncodeError”;在比较Python中的字符串时,如果使用的编码不同,也会报UnicodeEncodeError异常………所以比较乖的方式就像《Python Cookbook》中建议的,在发生IO动作时,I时将数据decode成Unicode,O时再将数据encode成相应的字符编码。
分享到:
评论

相关推荐

    中英文字符编码查询

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

    韩文字符编码总表.xlsx

    韩文字符编码总表

    关于 字符编码的 转换 知识

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

    字符编码笔记.doc

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

    字符编码转换处理工具

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

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

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

    不同字符编码转换

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

    字符编码文档

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

    字符编码详情.pdf

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

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

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

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

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

    HTML特殊字符编码大全

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

    字符编码转换,支持任意编码

    字符编码是计算机处理文本的基础,不同的编码方式使得各种语言的文字得以正确显示。在这个主题中,我们将深入探讨“字符编码转换”这一重要概念,以及如何支持包括GBK、UNICODE(UTF-16)、UTF-8以及GB18030等在内的...

    解决HTTP请求中的字符编码问题:技术指南与最佳实践

    在Web开发中,字符编码是确保数据正确传输和显示的关键因素。HTTP作为Web通信的基础协议,其请求中的字符编码问题尤为重要。本文将深入探讨HTTP请求中字符编码的处理方法,包括字符编码的基本概念、常见问题、HTTP...

    Java网络传输中字符编码问题的研究

    Java网络传输中的字符编码问题主要涉及到Java编程语言在处理不同编码格式时的转换和兼容性。Java语言本身采用Unicode字符集,这是一种国际化的标准,能够支持世界上大多数语言,包括中文。然而,在实际的网络环境中...

    计算机基础课件:西文字符的编码.ppt

    计算机基础课件:西文字符的编码 字符集是计算机中用于存储和处理各种字符的集合。西文字符集是由拉丁字母、数字、标点符号及一些特殊符号组成。每个字符在字符集中都有一个唯一的代码,即该字符的编码。字符代码表...

    字符编码解码的故事、字符编码解码的故事

    ### 字符编码解码的故事 #### 一、引言 字符编码是计算机科学中的一个基本概念,它定义了如何将各种字符(如字母、数字、符号等)转换为计算机能够理解的形式,即二进制数据。随着信息技术的发展,字符编码经历了...

    中文字符编码(ChineseCharacterCodes).zip

    中文字符编码是计算机科学领域中的一个重要概念,尤其是在处理汉字和其他多语言文本时。这个压缩包“中文字符编码(ChineseCharacterCodes).zip”包含了五种主要的中文字符集,分别是Unicode、GB2312-80、GBK、Big 5...

Global site tag (gtag.js) - Google Analytics