zoukankan      html  css  js  c++  java
  • eclipse+tomcat,控制台中文乱码

    1.首先,检查JSP页面声明的编码是否正确,正确示例(注意标红的地方):

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Insert title here</title>
        </head>
        <body>
        
        </body>
    </html>

    2.在确认步骤一没有问题后,接下来检查项目属性编码、 JSP 页面属性的编码和 Java 文件的属性编码,项目属性编码和文件属性编码也需要统一设置为 UTF-8 

    3.检查 Tomcat 的编码,需要把 Tomcat 的编码也设置为 UTF-8,找到 Tomcat 安装目录下的 conf 目录下的 server.xml 文件,如果没有修改过 Tomcat 的端口,则直接搜索8080 ,找到对应的 Connector 标签加上 URIEncoding 属性,值为 UTF-8。Tomcat8以及later基本不用改,默认为utf-8.

    4.是否因为远程服务器发送过来的字符流是传输内容的UTF-8编码,而客户端获得字符流后,以JVM默认的编码重新解析为字符串,因服务器-客户机编码不一致,而导致了乱码问题。

    Java虚拟机中字符串编码默认跟随操作系统,中文版的Windows系统编码为GBK,Linux系统为UTF8,如果需要手动设定编码,可以在JVM启动时添加以下参数:

    -Dfile.encoding=UTF-8

    新问题:添加以上参数后,java程序输出到标准输出(也就是常见的控制台)时,日志编码也会是utf8,但MyEclipse的Console、Windows的cmd窗口,并不知道应该以UTF8编码来解析jvm输出的字符,所以会出来乱码问题。为了让JVM输出编码与控制台接收端保持一致,需要手动设置控制台接收编码。

    eclipse中右击当前文件,run as---->run configuration------>common----->Encoding

    或者如下图所示,点击绿色旁边向下的三角,run configuration

    5.是否因为eclipse 工作空间编码格式

    【Window】→【Preferences】→【General】→【Workspace】

  • 相关阅读:
    Android popupwindow 失去焦点或者点击空白区域时消失的解决方法
    九度 题目1394:五连击数组
    地市级地铁数据管理信息系统解决方式
    用位运算实现两个整数的加法运算
    Leaflet--建设移动设备友好的互动地图
    atitit.自适应设计悬浮图片的大小and 位置
    PIM-DM协议内核触发机制及协议执行机制记录
    整合struts2+spring+hibernate
    UITableViewCell的prepareForReuse方法
    《linux 内核全然剖析》编译linux 0.12 内核 Ubuntu 64bits 环境
  • 原文地址:https://www.cnblogs.com/MeiT/p/10541404.html
Copyright © 2011-2022 走看看