response.setContentType("text/html;charset=gbk"); 为什么还是中文乱码

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServle... protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
try {

response.setContentType("text/html;charset=gbk");
PrintWriter pw=response.getWriter();
pw.println("<html>");
pw.println("<body>");
pw.println("<h1>登陆界面</hi>");
pw.println("<form action=?? method=post>");
pw.println("用户名:<input type=text name=username><br>");
pw.println("密码:<input type=passward name=passwd><br>");
pw.println("<input type=submit value=loing><br>");
pw.println("</body>");
pw.println("</html>");
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
展开
 我来答
im_黑白键
2012-11-30
知道答主
回答量:2
采纳率:0%
帮助的人:3010
展开全部
这是因为:由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java,这下没警告了,运行也正确了在JCreator 4中设置:菜单:Configure --> Options --> JDK Tools --> Compiler,选中<Default>,然后选Edit,Parameters里面,最前面添加:-encoding UTF-8。
Parameters原来的
默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]

参考资料: http://zhidao.baidu.com/question/26901568.html

88568700zzp
推荐于2017-05-21 · TA获得超过138个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:112万
展开全部
你这个是get方法,用response.setContentType是没用的,得把字符取出来,一个一个重新编码,String s=new String(param.getBytes("IS0-8859-1“,"GBK");//param为你取出来的字符,要不你就用post提交,就可以用response.setContentType("text/html;charset=gbk");
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
味洋扛590
2012-10-03 · TA获得超过1647个赞
知道小有建树答主
回答量:1640
采纳率:100%
帮助的人:825万
展开全部
连接数据库的url
url=jdbc:mysql://10.0.6.89:3307/gczf?useUnicode=true&characterEncoding=UTF-8
jsp页面上
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" %>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-10-03
知道答主
回答量:35
采纳率:0%
帮助的人:14.1万
展开全部
response.setContentType("text/html;charset=gbk");
request.setCharacter("gbk");
你这里的乱码应该是数据库的乱码吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
槛外人网上人生
2012-10-03 · TA获得超过6254个赞
知道大有可为答主
回答量:1710
采纳率:0%
帮助的人:553万
展开全部
前台加密,后台解密。
java后台是自动解密的好像
追问
那我要怎么进行修改?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式