关于字符编码问题的简单整理
iso8859-1
属于单字节编码,最多能表示的字符范围是0-255,应用于英文系列。它无法表示中文字符,由于它是基于单字节编码,和计算机最基础的表示单位一致,所以很多时候,仍旧使用iso8859-1编码来表示。而且在很多协议上,默认使用该编码。虽我iso8859-1无法表示中文编码,但是使用iso8859-1编码的时候会将它拆成4个字节来表示。比如:
“中文”,gb2312编码为:d6d0 cec4。iso8859-1编码:d6,d0,ce,c4。UTF编码:e4,b8,ad,e6,96,87。
如果将中文字符转化为iso8859-1的形式字节,将会失败,最终打印出来的字符将会是?号,所以在对中文使用和传输的过程中,我们不能使用iso8859-1的字符编码。
GB2312/GBK
这是汉字的国标码,专门用来表示汉字,是双字节编码。GBK能够同时表示繁体字和简体字,而GB2312只能表示简体字,GBK兼容GB2312。它属于不定长编码。
unicode
这是最统一的编码,可以有来表示所有语言的字符,而且是定长双字(也有四字节的)编码,包括英文在内。它不兼容任何编码。不过,相对于iso8859-1编码来说,unicode编码只是在前面啬了一个0字节,比如:字母'a'为0061。
UTF
考虑到unicode编码不兼容iso8859-1编码,而且容易占用更多的空间:因为对于英文字母,unicode也需要两个字来表示,所以unicode不便于传输和存储。因此产生了uft编码,它兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不过,utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。
关于java字符处理
getBytes(charset):得到指定字符串格式所表示的字符编码,并以字节方式表示。注意字符串在java内存中总是按unicode编码存储的。比如“中文”,正常情况下存储为“4e2d 6587”。如果charset为"iso8859-1",则由于无法编码,最后返回“3f 3f“(两个问号)。
new String(byte[],charset)
将字节码按照指定的charset(编码方式)组合成字符串,最后转换为unicode存储(记住,在java虚拟机中,所有字符都是定长双字节表示)。
关于HTTP中编码问题
[<%@page pageEncoding="GBK"%>]
用于指定页面存储时采用的编码
[<%@ page contentType="text/html; charset= GBK" %>]
用于指定文件内容输出到browser使用的编码,它与response.setCharacterEncoding("gbk")等效.
[<META http-equiv="Content-Type" content="text/html; charset=GBK" />]
主要用于设定静态网页的编码,因为非JSP页面无法使用上response对象。
注意:如果同时采用了JSP输出方式和meta设置两种,则JSP指一优于META。
分享到:
相关推荐
关于编码的一些资源,提供出来,格式仅供参考。
编码器是一种常用的传感器,用于检测机械运动的速度、位置和方向。在本文中,我们将深入探讨一个C语言编写的程序,该程序专注于处理编码器的正反转计数功能。编码器通常会产生脉冲信号,根据脉冲的上升沿或下降沿,...
在编程领域,尤其是在处理文本文件时,...通过分析"IdentifyEncoding.cs"和"EncodingInfo.cs"这两个文件,我们可以深入学习到C#中关于编码识别和转换的具体实现,这对于提升我们的编程技能和解决实际问题非常有帮助。
关于PB编码编码webService服务端
这实际上是有关代码国际化和本地化的问题,不过,原文提到的“将Python的英文编码变成中文的数据规范”并不准确,因为PEP8本身并不直接涉及语言的转换,而是关于编码风格的约定。不过,如果是要编写中文的注释,应当...
4. **帧头**:每个MP3帧包含一个帧头,包含了关于编码方式、采样率、位速率等信息,使得解码器能正确解析和重建音频。 "8Hz"这个名字可能代表了该编码器在处理速度上的特性,可能是每秒处理的采样频率,暗示了它在...
4. `lame_acm.xml`:此文件可能包含了关于编码器的元数据信息,比如版本号、作者信息等,方便软件管理和更新。 使用LAME3.92 ACM版进行MP3编码时,用户可以通过音频编辑软件如Audacity、Adobe Audition等,直接选择...
关于编码转换的知识点,我们可以进一步探讨: 1. **字符编码历史**:从最早的ASCII到ISO-8859,再到Unicode(包括UTF-8、UTF-16等)的发展,每个编码标准都有其适用的场景和局限性。 2. **编码识别与转换原理**:...
描述中的链接虽为空,但我们可以假设它指向了一个关于编码转换实践的博客文章。在实际工作中,我们可能会遇到需要转换编码的情况,例如从GBK转为UTF-8,以解决多语言支持问题或兼容性问题。 标签"源码 工具"暗示了...
在STM32微控制器中,定时器可以设置为编码器模式,自动计算脉冲的数量和方向,从而提供关于编码器旋转的信息。定时器在这种模式下会跟踪A相和B相信号的边沿变化,以确定编码器的转速和方向。串口通信则用于将计算出...
文件名“www.NewXing.com”看起来像是一个网址,可能是指该编码库可以从这个网站获取,或者这个网址提供了关于编码库的更多信息。实际的源码文件名通常会有.cpp、.h等后缀,用于表明它们是C++源代码文件。不过,在...
《编码的奥秘》这本书不仅是一本关于编码理论和技术的专业书籍,更是一部引导读者探索计算机科学世界的佳作。通过对编码的深入了解,我们可以更好地理解信息是如何被处理、存储和传输的。在未来的技术发展中,编码将...
这些PPT和文档文件名表明,它们可能包含了一系列关于编码理论的讲座、复习资料和课后习题解答,涵盖了编码的不同方面,例如基本概念、信道编码以及进阶主题。以下是基于这些文件名可能涉及的一些关键知识点的详细...
文件中提到了关于编码器的抗干扰能力的说明,如10kΩ的输入电阻和0.01μF的电容,这说明编码器具备一定的滤波能力,从而能保证输出信号的稳定,避免外部干扰。 7. 接口形式: 文件中也提及了关于编码器的接线端子...
7. **node6.html**、**basic.html**、**contributors.html**、**modes.html**:这些可能是文档页面,分别涵盖了关于编码节点、基础信息、贡献者列表以及不同编码模式的详细信息。 **应用场景** LAME编码器适用于...