请求参数的中文读取问题

来源:互联网 发布:网络连接错误691 编辑:程序博客网 时间:2024/05/16 00:15
  

请求参数的中文读取问题

了解中文字符的URL编码

浏览器怎样进行URL编码

getCharacterEncoding方法

setCharacterEncoding方法

getParameter方法的中文问题

一些参考经验

了解中文字符的URL编码

l  对Java中的某个字符串进行URL编码,其实是在对它的某种字符集编码(非Unicode码)数据进行URL编码,而Java中的字符串是以Unicode字符集编码存在的,所以,在对Java中的字符串进行URL编码时,必须指定是对这个字符串的哪种非Unicode的字符集编码进行URL编码。

l  JDK的java.net包中有两个类:URLEncoder和URLDecoder,URLEncoder类中定义了一个encode静态方法来完成URL编码,URLDecoder类中定义了一个decode静态方法来完成URL解码。

l  public static String encode(String s,String enc)
                         throws UnsupportedEncodingException

l  public static String decode(String s,String enc)
                         throws UnsupportedEncodingException

浏览器怎样进行URL编码

浏览器对FORM表单中输入的中文字符都会进行URL编码后再传送给WEB服务器。

对于页面中的FORM表单中输入的内容,浏览器将按照当前显示页面时所采用的字符集编码来进行URL编码。

与请求参数的字符集编码相关的方法

l  getCharacterEncoding方法

l  setCharacterEncoding方法

getParameter方法的中文问题à实践

 

l  解决getParameter方法读取POST方式下的“application/x-www-form-urlencoded”编码格式的实体内容中的参数时的乱码。

l  解决getParameter方法读取URL地址后面的参数时的乱码。

l  了解Servlet之间进行调用时传递参数的乱码问题。

使用<meta>标签模拟响应消息头

问题:

利用HTTP消息的响应头字段,可以让浏览器完成各种有用的功能,但是,这需要通过编写WEB服务器端的程序来实现。如果不会服务器端编程的普通HTML页面制作者也想借助HTTP消息的响应头字段来实现一些特殊功能,他们该怎么办呢?

解决方案:

HTML语言中专门定义了<meta>标签的http-equiv属性来在HTML文档中模拟HTTP响应消息头,当浏览器读取到HTML文档中具有http-equiv属性的<meta>标签时,它会用与处理WEB服务器发送的响应消息头一样的方式来进行处理。  

举例:

ü <meta http-equiv="Expires" content="0">

ü <meta http-equiv="Cache-Control" content="no-cache">

ü <meta http-equiv="Pragma" content="no-cache">

ü <meta http-equiv="Refresh" content="0;url=http://www.it315.org">

ü <meta http-equiv="Content-Type" content="text/html; charset=GB2312">

原创粉丝点击