网站大量收购闲置独家精品文档,联系QQ:2885784924

java 编码转换过程.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java 编码转换过程

j ava 编码转换过程 j ava编码转换过程 前⾯三篇博客侧重介绍字符、编码问题,通过这三篇博客各位博友对各种字符编码有 了⼀个初 的了解,要了解java的中⽂问题这是必须要了解的。但是了解这些仅仅只 是⼀个开始,以下博客将侧重介绍java乱码是如何产⽣的、存在哪些乱码的情况、该 如何从根本上解决乱码问题。各位随博主⼀起征服令⼈厌烦的java乱码问题吧 !!! j ava编码转换过程 我们总是⽤⼀个java类⽂件和⽤户进⾏最直接的交互 (输⼊、输出),这些交互内容 包含的⽂字可能会包含中⽂。⽆论这些java类是与数据库交互,还是与前端页⾯交 互,他们的⽣命周期总是这样的: 1、程序员在操作系统上通过编辑器编写程序代码并且以.java的格式保存操作系统 中,这些⽂件我们称之为源⽂件。 2、通过JDK中的javac.exe编译这些源⽂件形成.class类。 3、直接运⾏这些类或者部署在WEB容器中运⾏,得到输出结果。 这些过程是从宏观上⾯来观察的,了解这个肯定是不⾏的,我们需要真正来了解java 是如何来编码和被解码的: 第⼀ :当我们⽤编辑器编写java源⽂件,程序⽂件在保存时会采⽤操作系统默认的 编码格式 (⼀般我们中⽂的操作系统采⽤的是GBK编码格式)形成⼀个.java⽂件。 java源⽂件是采⽤操作系统默认⽀持的file.encoding编码格式保存的。下⾯代码可以查 看系统的file.encoding参数值。 System.out.println(System.getProperty(file.encoding)); 第⼆ :当我们使⽤javac.exe编译我们的java⽂件时,JDK⾸先会确认它的编译参数 encoding来确定源代码字符集,如果我们不指定该编译参数,JDK⾸先会获取操作系 统默认的file.encoding参数,然后JDK就会把我们编写的java源程序从file.encoding编码 格式转化为JAVA内部默认的UNIC DE格式放⼊内存中。 第三 :JDK将上⾯编译好的且保存在内存中信息写⼊class⽂件中,形成.class⽂件。 此时.class⽂件是Unicode编码的,也就是说我们常见的.class⽂件中的内容⽆论是中⽂ 字符还是英⽂字符,他们都已经转换为Unicode编码格式了。 在这⼀ 中对对JSP源⽂件的处理⽅式有点⼉不同:WEB容器调⽤JSP编译器,JSP编 译器⾸先会查看JSP⽂件是否设置了⽂件编码格式,如果没有设置则JSP编译器会调⽤ 调⽤JDK采⽤默认的编码⽅式将JSP⽂件转化为临时的servlet类,然后再编译为.class⽂ 件并保持到临时⽂件夹中。 第四 :运⾏编译的类:在这⾥会存在⼀下⼏种情况 1、直接在console上运⾏。 2、JSP/Servlet类。 3、java类与数据库之间。 这三种情况每种情况的⽅式都会不同, 1.Console上运⾏的类 这种情况下,JVM⾸先会把保存在操作系统中的class⽂件读⼊到内存中,这个时候内 存中class⽂件编码格式为Unicode,然后JVM运⾏它。如果需要⽤户输⼊信息,则会采 ⽤file.encoding编码格式对⽤户输⼊的信息进⾏编码同时转换为Unicode编码格式保存 到内存中。程序运⾏后,将产⽣的结果再转化为file.encoding格式返回给操作系统并输 出到界⾯去。整个流程如下: 在上⾯整个流程中,凡是涉及的编码转换都不能出现错误,否则将会产⽣乱码。 2.Servlet类 由于JSP⽂件最终也会转换为servlet⽂件 (只不过存储的位置不同⽽已),所以这⾥我 们也将JSP⽂件纳⼊其中。 当⽤户请求Servlet时,WEB容器会调⽤它的JVM来运⾏Servlet。⾸先JVM会把servlet 的class加载到内存中去,内存中的servlet代码是Unicode编码格式的。然后JVM在内存 中运⾏该Servlet,在运⾏过程中如果需要接受从客户端传递过来的数据 (如表单和 URL传递的数据),则WEB容器会接受传⼊的数据,在接收过程中如果程序设定了传 ⼊参数的的编码则采⽤设定的编码格式,如果没有设置则采⽤默认的IS -8859-1编码 格式,接收的数据后JVM会将这些数据进⾏编码格式转换为Unicode并且存⼊到内存 中。运⾏Servlet后产⽣输出结果,同时这些输出结果的编码格式仍然为Unicode。紧接 着WEB容器会将产⽣的Unicode编码格式的字符串直接发送置客户端,如果程序指定 了输出时的编码格式,则按照指定的编码格式输出到浏览器

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档