0 0

java乱码20

问题依旧未解决,继续求各位大神帮忙,小弟无限感激

jsp:

 

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/tld/extremecomponents.tld" prefix="ec" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>
<head><title>测试页面</title>


<meta http-equiv="Content-Type" content="text/html; charset=GBK" />

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/extremestyle.css" />
 <script type="text/javascript" src="${pageContext.request.contextPath}/WEB-INF/extremecomponents.js"></script>

 

<script language="javaScript">
function add() {

document.getElementById('name').value='';

}

function update(name) {

var ex = name;

document.getElementById('name').value = document.getElementById(ex+'name').value;

}

</script>
</head>

<body>

<ec:table
  items="mex"
  var="mexam"
  rowsDisplayed="10"
  action="${pageContext.request.contextPath}/mexamAction.do?method=view"
  imagePath="${pageContext.request.contextPath}/images/table/*.gif"
  title="考试任务列表"
  sortable="true"
  rowsDisplayed="5">
 
  <ec:row>

<ec:column property="name" title="考试名称">
  <input type="hidden" value='${mexam.examname }' name='${mexam.examid }name'>${mexam.examname }</ec:column>

</ec:row>

  </ec:table>

 </center>

<html:html>
    <html:form action="mexamAction.do?method=submit" method="post">

<font size='2'>名称</font><input type="text" name="name"/>

</html:form>
    </html:html>

</body>
</html>

 

web.xml:

<filter>  
        <filter-name>Encoding</filter-name>  
        <filter-class>com.yourcompany.struts.util.PageEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>GBK</param-value>  
        </init-param>  
    </filter>

 

PageEncodingFilter:

public class PageEncodingFilter implements Filter{
 private String encoding = "GBK";  
    protected FilterConfig filterConfig;  
      
      
    public void init(FilterConfig filterConfig) throws ServletException {  
        this.filterConfig = filterConfig;  
        //本过滤器默认编码是GBK,但也可以在web.xml配置文件里设置自己需要的编码  
        if(filterConfig.getInitParameter("encoding") != null)  
            encoding = filterConfig.getInitParameter("encoding");  
    }  
  
    public void doFilter(ServletRequest srequset, ServletResponse sresponse,  
            FilterChain filterChain) throws IOException, ServletException {  
        HttpServletRequest request = (HttpServletRequest)srequset;  
        request.setCharacterEncoding(encoding);  
        filterChain.doFilter(srequset, sresponse);  
    }  
      
    public void destroy() {  
        this.encoding = null;  
    }  

}

 

action:

String name = new String(mexform.getName().getBytes("iso8859-1"),"GBK");

 

后台输出:name 是 ?? 一个中文字两个问号

 


问题补充:我也不愿意啊大神们,问题就一直卡在这。急死了
String name = mexform.getName();
出来已经是??
tomcat server已经改过
过滤器也加上
继续求
2012年9月24日 10:44

10个答案 按时间排序 按投票排序

0 0

要么,你就在过滤器里设置编码,要么你就在action里面转码,建议使用utf-8编码方式,gbk不一定对中文完全解析。再查看你的页面提交方式,查看你的tomcat的server文件是否在请求里设置了对应的编码。使用debug查看你的编码,乱码问题,一般不难解决。

2012年9月25日 09:04
0 0

mexform.getName()中的mexform是什么,可以debug看看是什么吗
我常用的两种转码方式
String a=java.net.URLDecoder.decode('前台parma',"UTF-8");


前台js
var parma = encodeURIComponent("变量");后台接收时:
后台
String a=new String(parma.getBytes( "ISO8859_1"),"UTF-8");

2012年9月24日 18:09
0 0

请注意提交方式是get还是post,,过滤器对post方式提交会检验字符。get方式,参数在请求头,只能在程序中活着修改tomcat

2012年9月24日 16:11
0 0

action:

String name = new String(mexform.getName().getBytes("iso8859-1"),"GBK");



后台输出:name 是 ?? 一个中文字两个问号

可能是你那句action的原因吧 iso8859-1<<=>>iso-8859-1?

2012年9月24日 15:08
0 0

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" %>
这两条属性都加上试试

2012年9月24日 13:27
0 0

要不你前台用encodeURI转下码,后台再用dncodeURI解码试试

2012年9月24日 12:06
0 0

可以参考我的http://www.iteye.com/post/2322208

2012年9月24日 11:59
0 0

不用这么麻烦吧,直接在struts.xml加上
<constant name="struts.i18n.encoding" value="GBK" />就可以了

2012年9月24日 10:50
0 0

又是你。。
1.过滤器
2.改tomcat编码格式 要统一 GBK
3.jsp <%@ page language="java" pageEncoding="GBK"%>
如果用了其中一种:
String name = mexform.getName();
在试试


2012年9月24日 10:49
0 0

你试一下改改工程的属性里的编码方式

2012年9月24日 10:47

相关推荐

    Java乱码学习 Java乱码学习

    Java 乱码问题一直是开发...总结来说,Java乱码问题需要从源头(文件编码)、编译过程、网络传输以及服务器处理等多个层面进行排查和设置。了解并掌握这些知识点,将有助于我们更好地预防和解决Java环境下的乱码问题。

    java乱码自己解决的办法

    本文将深入探讨Java乱码的根源,并提供一系列实用的解决方案,帮助开发者有效应对这一挑战。 ### Java乱码根源 Java乱码主要由编码不一致引起,具体来说,当数据在不同环境(如输入、存储、读取)中采用不同的字符...

    java乱码解决方法

    解决java web开发中遇到的前后台传值乱码问题。

    java中文乱码大全

    Java中文乱码问题是编程者在开发Java应用程序时经常遇到的问题,尤其是涉及到中文字符处理时。这些问题产生的根本原因在于Java内部采用UNICODE编码,而不同的操作系统和浏览器可能支持不同的编码格式,如Windows中文...

    Java关于中文乱码问题的多种解决方法

    2. 网络传输中的乱码: 在HTTP请求或响应中,Java的Servlet API提供了设置编码的方式。例如,在`HttpServletResponse`中,可以使用`setContentType("text/html; charset=UTF-8")`设定响应的字符集。对于POST请求,...

    java中文乱码解决问题

    JAVA 中文乱码解决问题 JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的...

    java乱码问题解决方法

    2. utf8 解决 JSP 中文乱码问题 在 JSP 中,可以使用 page 指令指定输出的编码方式为 UTF-8,例如: ```jsp &lt;%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&gt; ``` 这将...

    java乱码解决方案

    java乱码解决方案,在使用eclipse时出现的乱码问题,帮助解决

    java乱码转换

    java 乱码 转换 utf

    java中文乱码之解决URL中文乱码问题的方法

    2. **Java服务器端处理**: - 在Java中,当从URL获取参数时,`HttpServletRequest.getParameter()` 默认使用ISO-8859-1编码,这可能导致中文乱码。为了解决这个问题,我们需要在获取参数后手动将其转换为正确的字符...

    java乱码处理

    2. **Java程序与其他媒介交互时产生的乱码问题**:这类问题更为常见,涉及到Java程序与数据库、文件、网络流等交互过程中字符和字节之间的转换。具体来说,当字符(char)和字节(byte)之间进行转换时,如果使用的编码...

    JAVA 乱码问题集合

    在Java编程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。以下是一些关键的知识点,可以帮助理解和解决Java中的乱码问题。 首先,我们需要理解字符编码的基本概念。字符编码是用来表示文本的一种方式,...

    Java乱码问题解决

    ### Java乱码问题详解与解决方案 #### 一、问题背景 在Java开发过程中,尤其是在处理中文字符时,经常遇到字符编码不一致导致的乱码问题。由于Java默认使用Unicode编码,而在中国大陆地区,常见的字符集为GB2312...

    java获取乱码问题

    ### Java获取乱码问题解析与解决方案 在Java应用开发过程中,字符编码问题一直是困扰开发者的一大难题,尤其是在处理HTTP请求中的中文或特殊字符时,经常会出现乱码现象。本文将详细介绍如何通过修改`server.xml`...

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose

    java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...

    Java中文乱码浅析及解决方案

    Java 中文乱码问题是一个常见的编程困扰,尤其对于处理中文字符的Java程序而言。这个问题通常源于字符编码的不一致,即不同环节采用的字符编码标准不统一。本文将深入探讨这一问题,并提供相应的解决方案。 首先,...

    Java编程乱码处理方法大全(附图说明)

    在Java编程过程中,乱码问题是一个常见的困扰,尤其是在处理字符编码时。本篇文章将全面解析Java中的乱码处理方法,涵盖纯Java代码、Servlet、JSP以及EJB类的解决方案,帮助开发者有效解决这一问题。 首先,理解...

    java中文乱码问题详解--- java中文乱码问题详解

    2. **文件编码与系统编码不匹配**:Java源文件的编码格式(通常是文件保存时使用的编码)与操作系统默认编码不一致时,如果没有进行正确的编码转换,会导致编译或运行时出现乱码。 3. **网络传输中的编码问题**:在...

    Java开发乱码问题解决方法汇总

    Java开发乱码问题解决方法汇总 Java开发中乱码问题是非常常见的问题之一,而解决这些问题需要具备一定的技术知识和经验。在本文中,我们将总结一些常见的Java开发乱码问题解决方法,希望能够为读者提供帮助。 1. ...

Global site tag (gtag.js) - Google Analytics