java - tomcat输出一些乱码

标签 java jsp tomcat struts2

我的 jsp 页面使用了所有“utf-8”编码。

我使用 struts2 作为我的网络框架并在 tomcat 上运行它。

最近发现部分汉字出现乱码,其余正常。

请看下面的图片:

enter image description here

这张图片是关于输出的html源码。这里链接的data-tmpl属性的内容必须和上面的div内容一样。

但不是,而且部分内容是乱码。

这是jsp代码:

页面编码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

上图的逻辑代码:

<div class="float-left ${st.odd?'odd':'even'}" >
    ${template }【${signNoBracket }】
</div>
<a class="sms-editor-select-tmpl float-right" data-tmpl="${template }" data-sign="${signNoBracket }" href="###" style="display:none;">使用</a>
<p class="clear"></p>

此 jsp 页面由父 jsp 页面包含:

<s:include value="/controls/2.0/sms-editor.jsp"></s:include>

'template' 的 ref 使用 EL 表达式都是一样的。

那么为什么会发生这种情况呢? tomcat输出编码有问题吗?


添加于 2013-11-1 0:25:02

大家好,这几天做了一些实验,发现无论是tomcat还是struts框架都会导致出现这个问题。

我用jsp脚本代替el表达式,问题依然存在。

下面是一些代码片段:

<%
   ValueStack vs = TagUtils.getStack(pageContext);  
   Object value = vs.findValue("template");
   System.out.println(value);
%>
<a class="sms-editor-select-tmpl float-right" data-tmpl="<%=value %>" data-sign="${signNoBracket }" href="###" style="display:none;">使用</a>

而且我可以在tomcat控制台中看到println的值,这和我们预期的一样正常。所以,tomcat的汉字输出流肯定是有bug的。

tomcat的输出(很正常):

#收货人#您好,看到您给的中差评,抱歉让您有了不满意的购物经历。若可以我们愿意承担运费为您提供退货,希望旺旺联系我们!

我在两个版本的 tomcat 上测试我的应用程序,它们都有这个问题。 一个是 apache-tomcat-6.0.30,另一个是 apache-tomcat-7.0.47。

那么,有没有人可以帮我解决这个问题?或者只是给我指路。


现在我尝试使用 jetty 9.0.6 来运行我的应用程序,问题仍然存在....谁能告诉我到底是什么....

OTL orz!!!

最佳答案

在你的 tomcat 的 server.xmlcontext.xml 上试试这个可能会有帮助:

<Connector port="8080" ... useBodyEncodingForURI="true"...

关于java - tomcat输出一些乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672981/

相关文章:

Java进程在运行时打印输出

javascript - 生成 doc 或 pdf 文件的图像预览

Eclipse + Apache 速度引擎?

javascript - IE中 'Show friendly HTTP error messages'选项的用途是什么

java - 在 Spring 中存储 bean 实例

java - 使用 Java Web 应用程序检测登录计算机的用户

java - 设计带有红外背景灯的Android应用程序

java - 授权 header 未显示在 CURL springdoc-openapi-ui 中

java - 在 Android 应用程序中集成 Google Photos Library API

java - Tomcat找不到直接放在classes文件夹下的类