ssh页面中文乱码问题

  今天碰到一个问题,在我做的ssh项目中,程序在一个action中将一串中文提示语句 —— 一个字符串存在session中(且不讨论用session存这个合不合理),在另外一个action渲染的jsp页面中用el表达式取出来呈现,形如:${requestScope.noright}。

  在我的开发环境中(Tomcat6 + MyEclipse8.5),这一个提示语句显示正常,并没有出现乱码的状况。但是当我将其部署到was的测试环境时,这一句提示信息显示成了“????????”,一串问号,而页面其他地方都没有这个问题。

  首先想是什么导致tomcat和was存在差异,后来回想起来,之前在tomcat conf文件夹下的server.xml中加过这么一段配置

    <Connector port="9080"
               protocol="HTTP/1.1"
               connectionTimeout = "20000"
               redirectPort ="8443"
   	       URIEncoding ="UTF-8"
    />

,将这段配置注释后,本地也出现同样情况。

  was上是不能如上配置的,于是在继续找问题,百度知道上找到这个回答:

http://zhidao.baidu.com/link?url=5c5enTpHLCsPvcGhG0McFVLUBJN4ar_rbwF95ISzHyGA0GP4N9JjeOpYmvmTBebZrhKV0mTN26l86pIsSmTRFq
pageEncoding是jsp文件本身的编码

contentType的charset是指服务器发送给客户端时的内容编码

JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。

  于是在jsp页面上加入

<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>

就显示正常了。

时间: 2024-10-27 13:47:08

ssh页面中文乱码问题的相关文章

freemarker页面中文乱码

一.前言 简单的记录freemarker遇到的错误问题:ftl页面中文乱码 由于freemarker整合在ssm框架中,所以笔者直接贴配置代码 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.

SSH 显示中文乱码

试了N多方法,貌似在终端执行命令: export LC_ALL=zh_CN.GB2312;export LANG=zh_CN.GB2312是最有效的. ======================= 1.不管用那种ssh客户端,字体设定一定要设为可以显示中文的字体. 2.远程的locale一定要设置为LANG=zh_CN.UTF-8 ======================================== 修改/etc/profile 增加这一行 export LC_ALL=zh_CN.

vs2015 生成 cordova 页面中文乱码

原文:vs2015 生成 cordova 页面中文乱码 1.用VS2015新创建Cordova项目,启动运行index.html 中文显示乱码 解决方案: 1.使用text/html通用解析编码utf-8 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 2.使用记事本打开index.html文件,另存为文件,选择编码utf-8,然后页面显示就正常了 原文地址:htt

如何彻底解决jsp页面中文乱码及数据库乱码

最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下面总结一下彻底解决中文乱码问题: 在项目里的我统一使用UTF-8的编码方式 1.知道自己安装Mysql数据库安装配置时选择了什么编码方式,如果之前安装,现在不太清楚,建议重新安装Mysql数据库,安装配置时选择utf8 (这里有个小技巧:不用卸载Mysql数据,找到安装Mysql数据库目录:D:\M

Zabbix 监控页面中文乱码

问题描述: 如题,我相信大多数人都遇到过这个问题,Zabbix 监控图 中文乱码. 解决这个问题也很简单:( Zabbix 网页目录中缺少字体 ) 1.打开 Windows 的 C:\Windows\Fonts 字体存放目录,选一款你喜欢的字体 ( 建议选清爽一点的,太花的放上去看不清楚 ) 2.我选择的是 楷体常规,文件名为 simkai.ttf,把这个文件传到服务器的 Zabbix 网页目录中 ../html/zabbix/fonts ( 如果原文件名是 .TTF 的,记得改成 .ttf )

PHP页面中文乱码处理办法

1.为什么会出现乱码? 出现乱码问题的原因,一般都是页面的中文字符的编码格式与浏览器编码格式不符.这个时候需要我们去调整页面的编码格式.下面我们来看看处理这类问题的方法: 2.页面乱码解决办法一般我们会采用在PHP 页面声明编码方法去处理中文乱码问题,主要采用header和meta方法解决.下面我们来看下这两者的区别 2.1Meta页面编码 使用 <META http-equiv="content-type" content="text/html; charset=xx

Python 生成的页面中文乱码问题

第一 保证 程序源文件中的中文的编码格式,如我们把 源文件的编码设置成utf8的. reload(sys) sys.setdefaultencoding('utf-8') 第二, 告诉浏览器,我们需要用什么格式来展示字符 . web.header('Content-Type', 'text/html; charset=UTF-8') 主要是加这个 HTML格式的头部中说明. 这样基本可以解决,Python生成的网页中文乱码的问题. 版权声明:本文为博主原创文章,未经博主允许不得转载.

【nodejs】使用response输出中文但页面中文乱码的处置

两点要确认: 1.head里有<meta charset="utf-8"/> 2.js文件编码为utf-8格式. 第二点往往容易被忽略,所以出现乱码. 附上代码: 'use strict'; var express=require('express'); var http=require('http'); var app=express(); app.get('/index.html',function(req,rsp){ rsp.writeHead(200,{'Conte

html转jsp页面中文乱码问题解决

最近用到layui的后台大布局框架,结果吧代码粘过来,改为jsp页面出现乱码(如下) 原因,HTML改为jsp格式后,缺少jsp页面的头部 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 加上它问题解决 原文地址:https://www.cnblogs.com/jmdd/p/12128349.html