黑马程序员技术交流社区

标题: 出现乱码了 [打印本页]

作者: 樊占江    时间: 2012-8-17 02:58
标题: 出现乱码了
Myeclipse里设置了utf-8 jsp也是 html也是
html页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://bbs.itheima.com/forum.php">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="luanma" method="get">
欢迎进入用户注册页面<br/>
姓名:<input type="text" name="name" />
<input type="submit" value="提交" />
</form>
</body>
</html>

servlet:
package com.luanma;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Luanma extends HttpServlet {

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
resp.getWriter().print(name);

}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}


为什么输入了姓名之后,页面返回的是乱码啊 现在做的这个小项目就是,只要在网页上输入的是汉字,储存到数据库里的就是乱码.我的myeclipse oracle 所有的都设置成utf-8了 以前还没乱码,突然就有了



作者: 王海亮    时间: 2012-8-17 03:22
版本低导致的乱码


特别说明,如果你的浏览器是 ie6 或以下版本,则我们的 ② 和 ③中情况会出现乱码(当中文是奇数的时候)


解决方法是 :


String
info=java.net.URLEncoder.encode("你好吗.jpg", "utf-8");


<a href=”http://www.sohu.com?name=”+ info >测试</a>


response.sendRedirect(“servlet地址?username=”+info);


说明: 我们应当尽量使用post 方式提交;


返回浏览器显示乱码


在服务端是中文,在response的时候,也要考虑浏览器显示是否正确,一般我们通过


response.setContentType(“text/html;charset=utf-8”);
ok





下载提示框中文乱码


补充一个知识点: 当我们下载文件的时候,可能提示框是中文乱码


String temp=java.net.URLEncoder.encode("传奇.mp3","utf-8");


response.setHeader("Content-Disposition","attachment;
filename="+temp);


作者: 方志亮    时间: 2012-8-17 07:06
你只存储汉字的话 个人推荐你用gb2312
尽量使用post 方式提交




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2