- 浏览: 1658355 次
- 性别:
文章分类
- 全部博客 (2929)
- 非技术 (18)
- Eclipse (11)
- JAVA (31)
- 正则表达式 (0)
- J2EE (4)
- DOS命令 (2)
- WEB前端 (52)
- JavaScript (69)
- 数据库 (8)
- 设计模式 (0)
- JFreechart (1)
- 操作系统 (1)
- 互联网 (10)
- EasyMock (1)
- jQuery (5)
- Struts2 (12)
- Spring (24)
- 浏览器 (16)
- OGNL (1)
- WebService (12)
- OSGi (14)
- 软件 (10)
- Tomcat (2)
- Ext (3)
- SiteMesh (2)
- 开源软件 (2)
- Hibernate (2)
- Quartz (6)
- iBatis (2)
最新评论
1. 编码的产生
对电脑而言,只认识0,1; 而现实世界是由各种符合组成,要想让计算机解释现实世界,就必须建立一套现实世界中的符号 和 计算机能处理的符号之间的对应关系,这个对应关系就是编码
2. 在一个编辑器中,当我们在键盘上敲入一个字符时,在该编辑器上就会显示对应的字符,这个过程用计算机执行步骤来解释大致如下:
输入字符 –> 编辑器根据设定的编码格式把字符编成01格式 -> 编辑器再按编码规则对01解码–> 显示字符
3.几种常见的编码格式
1. ASCII码:
计算机中最早的一套编码格式,采用7位二进制表示一个常见的字符,我们知道,计算机是按照字节来处理数据的,一个字节8位,因此用一个字节就可以表示一个
ASCII字符,且还有一个位空位,规定最高位不用,常见的把最高位设定为0。
7位二进制最多可以表示128个字符(2的7次方),ASCII码只能表示常见的英文字符,数字,和少量的符号(没办法,谁让计算机是人家老美先发明的
啊,优先考虑本土语言,理解理解)
注: 由于ASCII最早定义,使用广泛,使得之后出现的新的”字符“(不是汉字喔)编码都尽量和它兼容
2. iso-8859-1:
尽管ASCII应用广泛,但是由于它定义的字符太少,即使对于同是使用字母语言的国家也不够用,更别说我们汉字啦,西欧许多国家使用拉丁语言,其中的很多
字符ASCII编码都不认识喔,这当然会让它们不爽啦,总不能因为这个问题让那些国家的人不使用电脑吧,
于是ISO/IEC就推出了另外的一套编码标准ISO-8859-1. 这套标准完全和ASCII兼容,它使用8位二进制表示一个字符 —---
刚好一个字节,其中最高位是0时的解释和ASCII一样(这样不就完全兼容啦,兼容很好理解吧),但最高位是1时则用于定义其它字符,这样就在保证和
ASCII兼容的同时又扩展了ASCII,可以多表示字符啦
3. GBK编码
光有字母语言国家的编码就可以么?, 可以啊,好好学习英语啊,
要不你看不懂啊,不想学?,那就不玩啊,呵呵,当然不会啦,对于中国,韩国,日本等这些国家,推出了一种新的编码GBK码,
在编码上GBK采用单双字节混合的方式,它也兼容ASCII喔,具体GBK怎么个编码,你查看资料啦, 这里重点关注的是编码的演化,提供的是思路哈
4. Unicode
Unicode是为了打破这种编码的各自为政,带有强烈地域性的标示而推出的一种编码格式,目的是要达到世界的大同,大同好啊,方便交流啊,就是晚了点,
计算机一出现就出来多好,就没了现在让程序员头疼的编码转来转去的麻烦了,恩,看来有界限的人心是会带来麻烦的,好了,啰嗦了这么多,才算真正引入正题,
为什么会出现乱码,如何解决乱码
4. 揭示web中乱码的病因
比如说现在有两个人,张三 和 make分别来自中国和美国,现在他们访问同一台j2ee服务器,他们都向服务器发送了一条消息
张三: 嗨,我是张三
Make: hello, I’m make
假如张三发送的信息采用的编码格式是GBK, make的是ASCII,
对于浏览器而言,留言器没有把发送的信息采用的编码格式告诉给web服务器(之前的浏览器没提供这个功能,又是地域性的见识啊,现在最新版的不知道有没
有),web服务器不知道你发过来的信息编码格式啊,怎么解释呢,没办法只好提供个默认的吧,恩还是用iso-8859-1吧(毕竟java也是老美搞出
的啊,没办法),英语的没问题,web服务器能听懂,毕竟大家都说英语嘛,并且make对web服务器而言,懂得字母还少了点呢;
汉语的就不行了,就好比一个人只懂汉语,另一个人只懂英语,怎么交流啊,可以交流?那就只好”~!@#¥%“, 这就是java中乱码的病因吧
5. 如何避免乱码的产生
知道了病因,对症下药就好啦,
1. 让浏览器明确指定信息的编码格式, 这个不行啦,程序员干涉不了啦,这不是你的问题啦,不知道现在的浏览器是否已提供这种机制啊,请知道的朋友明示:?
2. 明确采用GBK编码处理请求的数据啊
3. 因为一般的浏览器可以解析多种编码格式,我们的web响应内容,最好指定编码格式喔,这个大家都知道啦
4. 不知道那些国外的站点是如何处理中文的,请大师们开始啊
注: 以上是个人理解,错漏之处难免,欢迎抓虫
发表评论
-
使用Java 动态代理实现AOP
2009-07-22 14:29 607目前整个开发社区对AOP(Aspect Oriented P ... -
Java中用动态代理类实现记忆功能
2009-07-22 14:30 703记忆是衍生自lisp,python, ... -
JAVA动态代理实现方法
2009-07-22 14:31 696在目前的Java开发包中包含了对动态代理的支持,但是其实现只支 ... -
对代理模式与Java动态代理类的理解(转)
2009-07-22 14:32 7671. 代理模式 代理模式的作用是:为其他对象 ... -
十年与java 相关的名字
2009-07-22 17:12 732RickardOberg:J2EE奇才 文/ ... -
搞懂java中的synchronized关键字
2009-07-28 17:48 607实际上,我关于java的基 ... -
字符串转化为unicode编码
2009-07-31 16:16 901package com.util; import java. ... -
移位运算符的规则及其数学意义
2009-07-31 18:02 780移位运算符就是在二进制的基础上对数字进行平移。按照平移的方 ... -
几个谜题,深入的了解java
2009-08-03 17:02 732在2009年的JavaOne大会上,Joshua Bloch和 ... -
四、深入下package,import:(摘)
2009-08-06 09:18 708注:因package,import涉及较多内容,另开一个帖子了 ... -
三、我对java中类路径的理解(摘)
2009-08-06 09:18 529Java中的类路径分“编译后的存放路径” 和 “运行时的查找路 ... -
二、我对java中类装载的理解(摘)
2009-08-06 09:18 7771.Java中的所有类,必须 ... -
java class文件格式解析(摘)
2009-08-06 09:19 7931.目的 ... -
关于 JavaBean 规范你还是应该知道的二三事
2009-08-06 09:22 824作为 Java 程序员,对于 JavaBean 也许你会说再熟 ... -
synchronized(this)的几个简单示例
2009-08-06 10:31 823一、当两个并发线程访问同一个对象object中的这个synch ... -
java压缩对象 与 对象的序列化
2009-08-07 17:39 668gzip是目前广泛应用的一种压缩方式,它具有很高的压缩比和压缩 ... -
Java常见问题集锦
2009-08-12 12:22 681如何设置Java 2(JDK1.2)的环境变量? 哪些Jav ... -
JavaFX尝鲜
2009-08-17 17:24 506java6出来以后,其一大 ... -
Java在不同环境下获取当前路径的方法--this.getClass().getResource("")
2009-08-17 17:24 7071. 在Servlet/Filter等Servlet web环 ... -
JAVA进阶:VO(DTO)与PO(DAO)之间的转换
2009-08-26 13:58 900PO即 Persistence Object VO ...
相关推荐
从给定的文件信息中,我们可以提炼出以下关于Java语言程序设计的知识点: 1. Java程序的基本概念和...通过上述知识点的概述,可以对Java语言程序设计的复习题库进行深入的复习和理解,有助于考试和日常的编程实践。
猴子游戏作为一种经典的计算机编程练习,其历史可以追溯到早期计算机教育中,主要被用来教授编程初学者理解基础的编程概念和控制流。通过游戏模拟猴子摘香蕉的行为,要求开发者在设计程序时考虑到条件判断、循环控制...
### Java基础知识点解析 #### 1. 整数排序算法 **题目描述**: 编写程序实现对给定的4个整数从大到小的顺序排列。...**题目描述**: 猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将...
综上所述,"java项目俄罗斯方块"是一个极好的学习资源,涵盖了Java编程、面向对象设计、软件工程实践和游戏开发等多个方面,对想要踏入编程领域的初学者来说极具价值。通过这个项目,学习者可以亲手构建一个完整的...
在Android应用开发中,Activity是构成应用程序的基本组件,它负责用户界面的展示和交互。"猴子摘桃"小项目是一个常见的...通过"猴子摘桃"这样的实践项目,开发者可以加深对这一概念的理解,并将其应用于实际场景中。
《陶陶摘苹果》是一本专门针对信息学奥赛的辅导书籍,书名中的"T1103"可能指的是特定的题目编号或者章节代码。在信息学奥赛中,这样的书籍通常会涵盖算法设计、数据结构、编程语言基础以及解题策略等内容。以下是...
“Java规则引擎工作原理及其应用(摘)_我从故乡来.mht”可能解释了Java规则引擎的工作原理,包括规则的存储、匹配、执行流程,以及它们在实际项目中的具体应用案例。 “引擎优化(SEO)十八大规则_魔力空间.mht”虽然...
【五笔字根表】是学习五笔输入法的基础,它是根据汉字的构造将汉字拆分成不同的字根,每个字根对应一个特定的编码,通过这些编码组合输入汉字。五笔字根表主要分为五个区,每个区有五个键位,对应键盘上的26个字母。...
在多媒体开发领域,音乐是不可或缺的一部分,特别是在编程学习和业务爱好中,音频处理技术的应用广泛且多样。这里我们关注的是一些经典的华语流行歌曲,它们以MP3格式存储,包含在提供的压缩包文件中。MP3是一种广泛...
易语言是一种专为非计算机专业人士设计的编程语言,它的特点是语法简单、易学易用,使得初学者能够快速上手编程。在这个“易语言源码易语言MP3文件信息摘要源码.rar”压缩包中,我们可以找到使用易语言编写的程序,...
### 8.1 代码风格 ...综上所述,高质量的编程不仅仅是编写无误的代码,还包括遵循一系列编码规范和最佳实践,从而提高代码的可读性、可维护性和可靠性。这些规则和技术的应用能够显著提升软件项目的整体质量。