课程咨询 :186-8884-0703
咨询QQ:1615412715

深圳Java培训 > 达内新闻 > 如何解决Java项目中的中文乱码?
  • 如何解决Java项目中的中文乱码?

    发布:深圳Java培训      来源:达内新闻      时间:2016-07-12

  • 在进行Java项目中,你肯对会碰到中文乱码的问题。今天,深圳java培训(sz.java.tedu.cn)专家就教大家如何解决Java项目中的中文乱码。希望能对你有所帮助!

    如何解决Java项目中的中文乱码?

    第一种情况:调用jsp页面中文显示乱码

    问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码。

    解决方法:首先确认本jsp在编辑器中保存文件内容时,使用的是utf-8的编码格式,然后在jsp页面的开始处添加<%@ pageEncoding="utf-8"%>就可以解决这种中文乱码问题。

    第二种情况:调用servlet页面显示乱码

    问题描述:通过浏览器调用servlet,servlet在浏览器中显示的内容出现乱码。

    解决方法:在servlet使用response对象输出前,先执行response.setContentType("text/html;charset=utf-8");设定输出内容的编码为utf-8。

    第三种情况:post表单传递参数乱码

    问题描述:通过jsp,html,或servlet中的表单元素把参数提交给对应的jsp或者servlet时,在接收的jsp或servlet中接收到的参数中文显示乱码。

    例如:

    提交jsp代码如下:
    <%@ page language="Java" pageEncoding="utf-8"%>
    接收参数的jsp代码如下:
    <% @  page language="java" pageEncoding="utf-8"%>
    接收表单
          <% 在这里插入
               request.setCharacterEncoding("utf-8");
          %>
           用户名:<%=request.getParameter("username")%>
          密     码:<%=request.getParameter("password")%>

    解决方法:在接收post提交的参数前,使用request.setCharacterEncoding("utf-8")设定接收参数的内容格式为utf-8编码。见接收表单中的插入内容即可。当然这种乱码问题最好使用中文过滤器的方法最好。

    第四种情况:URI方式传递参数乱码

    问题描述:使用表单传递参数,可以通过post或get方式,不适用表单,还可以使用链接方式传递参数,这种传递参数方式本质上就是get方式传递参数,这种方式中传递的参数出现中文时也可能出现乱码。

    如:显示用户名和密码

    解决方法:问题本质是get方式传递的参数内容默认编码方式问ISO8859-1,而且使用request.setCharacterEncoding("utf-8")也无法解决问题,要解决这个问题,修改tomcat服务器的配置文件。修改tomcat目录下的conf/server.xml文件的第43行:

    修改前内容:
    <connector port="8080" protocol="HTTP/1.1"
         maxThreads="150"   connectionTimeout="200000"
         redirecPort="8443"/>

    修改后内容:
    <connector port="8080" protocol="HTTP/1.1"
         maxThreads="150"   connectionTimeout="200000"
         redirecPort="8443"    URIEncoding="utf-8"/>

    这样就可以解决这种类型的乱码问题。

    第五种情况:

    问题描述:在使用一些类库或者框架时,为了实现页面内容国际化,需要编写对应的properties文件。而properties文件中的中文内容在显示的时候也会出现乱码。
    解决方法:这个乱码问题可以通过jdk中的native2ascii工具解决。使用如下命令:

    native2ascii   -encoding   utf-8  display.properties    display_zh_CN.properties

    出现乱码问题的原因是因为java编译器只能处理Latin-1或unicode编码的字符文件。

    如果你还有这些疑问欢迎咨询深圳java培训(sz.java.tedu.cn)专家。
    如果想学习的同学可以参加深圳达内JAVA培训,免费试听,或周末免费参加深圳JAVA培训公 开课程试听,这里有强大的师资阵容,“师者,所以传道授业解惑也”,讲师,是教育的主体,是影响整体办学质量、学员学习质量的重要因素。所以深圳达内 JAVA培训竭尽全力为学员提供最强大的师资力量,让学员接受最好的教育,学习最前沿的技术。掌握一门牛逼闪闪技术,待遇自然不在话下。

上一篇:Java是一种纯面向对象语言?

下一篇:【达内JAVA教程】Java外观模式设计

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:4月28日

Java--零基础周末班

Java--零基础周末班

开班日期:4月28日

Java--大数据全日制班

Java--大数据全日制班

开班日期:4月28日

Java--大数据周末班

Java--大数据周末班

开班日期:4月28日

  • 地址:深圳市宝安区共乐路西乡商会大厦10楼——深圳JAVA培训中心宝安校区
    深圳市龙岗区横岗力嘉路2013文化创客园A栋——深圳JAVA培训中心龙岗校区
  • 课程培训电话:186-8884-0703
    咨询QQ:1615412715 全国免费咨询热线:400-111-8989
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56