JSP开发 wap页面编码问题
请看下面这段代码。
<%@ page contentType="text/vnd.wap.wml;charset=utf-8" %>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<?xml version="1.0" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="test2" title="汉字接收">
<%
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
String id=request.getParameter("id");
%>
<p>姓名:<%=name%></p>
<p>id:<%=id%></p>
<do type="prev" label="返回上页">
<prev/>
</do>
</card>
</wml>
刚学J2ME,想做个小的手机博客,自己玩玩,随便弄了个页面竟然一堆乱码?
tomcat 和 Nokia Mobile Browser 4.0都是默认设置。
我的操作步骤:
1. 直接用记事本编辑的保存上面的代码,在Nokia Mobile Browser 4.0中 汉字 显示 全是乱码。效果如下:
2. 把上面的代码另存为utf-8的编码(记事本默认的是ANSI), 在Nokia Mobile Browser 4.0中,仅仅是“姓名”显示的是乱码,其他的汉字显示正常, 效果如下:
3. 把代码另存为 unicode 的编码, 显示的如下错误:
4. 把<%@ page contentType="text/vnd.wap.wml;charset=utf-8" %>改为 charset="gb2312",页面默认的保存编码ANSI,效果通2一样。
5. 把<%@ page contentType="text/vnd.wap.wml;charset=utf-8" %>改为 charset="gb2312",页面默认的保存编码utf-8,效果如下:
6. 删除<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>这一语句,同时<%@ page contentType="text/vnd.wap.wml;charset=utf-8" %>改为 charset="gb2312",出现如下错误:
为什么会出现这种情况,我实在搞得晕晕乎乎了。
我的理解是:
charset=utf-8用来设置页面的显示编码;
pageEncoding="utf-8"用来设置对文件的读取应采用的编码;
response.setContentType("text/vnd.wap.wml;charset=utf-8");用来设置服务器响应的告诉浏览器应该按照什么样的编码显示;
request.setCharacterEncoding("utf-8");用来设置参数传递的URL编码。
Qusetion:1。 Tomcat以什么编码读取我的文件。
2。 Tomcat读取我的jsp文件有用什么编码生成java 文件,接着又以什么编码生成和读取类似servlet的class文件。
3。 怎样才能正确的显示。
再网上查了半天,都发现不能解决我的问题,我主要想了解一下程序再运行过程中的编码与解码过程。
有会的帮给讲解下。谢谢!