b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

如何解决浏览器不兼容问题 java中文乱码问题的终极解决方案(3)

电脑杂谈  发布时间:2018-02-12 14:08:31  来源:网络整理

下面分析两个有代表性的例子,说明java对编码有关问题的处理方法。

3.4.1. 表单输入

User input *(gbk:d6d0 ce) browser *(gbk:d6d0 ce) web server iso8859-1(00d6 00d 000ce 00) class,需要在class中进行处理:getbytes("iso8859-1")为d6 d0 ce ,new String("gbk")为d6d0 ce,内存中以unicode编码则为4e2d 6587。

l 用户输入的编码方式和页面指定的编码有关,也和用户的操作系统有关,所以是不确定的,上例以gbk为例。

l 从browser到web server,可以在表单中指定提交内容时使用的字符集,否则会使用页面指定的编码。而如果在url中直接用的方式输入参数,则其编码往往是操作系统本身的编码,因为这时和页面无关。上述仍旧以gbk编码为例。

l Web server接收到的是字节流,默认时(getParameter)会以iso8859-1编码处理之,结果是不正确的,所以需要进行处理。但如果预先设置了编码(通过request. setCharacterEncoding ()),则能够直接获取到正确的结果。

l 在页面中指定编码是个好习惯,否则可能失去控制,无法指定正确的编码。

3.4.2. 文件编译

假设文件是gbk编码保存的,而编译有两种编码选择:gbk或者iso8859-1,前者是中文windows的默认编码,后者是linux的默认编码,当然也可以在编译时指定编码。

Jsp *(gbk:d6d0 ce) java file *(gbk:d6d0 ce) compiler read uincode(gbk: 4e2d 6587; iso8859-1: 00d6 00d 000ce 00) compiler write utf(gbk: e4b8ad e69687; iso8859-1: *) compiled file unicode(gbk: 4e2d 6587; iso8859-1: 00d6 00d 000ce 00) class。所以用gbk编码保存,而用iso8859-1编译的结果是不正确的。

常见浏览器兼容问题_如何解决浏览器不兼容问题_浏览器不兼容什么意思

class unicode(4e2d 6587) system.out / jsp.out gbk(d6d0 ce) os console / browser。

l 文件可以以多种编码方式保存,中文windows下,默认为ansi/gbk。

l Java编译的时候会转换成统一的unicode编码处理,最后保存的时候再转换为utf编码。

l 当系统输出字符的时候,会按指定编码输出,对于中文windows下,System.out将使用gbk编码,而对于response(浏览器),则使用jsp文件头指定的contentType,或者可以直接为response指定编码。同时,会告诉browser网页的编码。如果未指定,则会使用iso8859-1编码。对于中文,应该为browser指定输出字符串的编码。

l browser显示网页的时候,首先使用response中指定的编码(jsp文件头指定的contentType最终也反映在response上),如果未指定,则会使用网页中meta项指定中的contentType。

3.5. 几处设置

对于web应用程序,和编码有关的设置或者函数如下。

3.5.1. jsp编译


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-73658-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 韩勇增
      韩勇增

      美国人流放犯的后代

    • 侯颤
      侯颤

      舍己为人的精神值得全世界学习

    热点图片
    拼命载入中...