0 0

ssh框架,jquery向服务器传了一个带中文的值在服务器成了乱码~~!!!!!!5

  通过新浪网站提供的一个图片接口拿到一个值,然后通过jquery传到服务器
js代码:
<script type="text/javascript" src="myjs/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="http://hq.sinajs.cn/list=sh600872"  charset="gb2312"></script>
<script type="text/javascript">
function check1() {
var str=encodeURIComponent(hq_str_sh600872);
alert(str);
$.post("one/login.action", "stockinfo=" +str, callback);
}
function callback(){
}

alert(hql_str_sh600872) 是中文的:中据高新,10.95,10.84,11.21,11.52,10.94,11.21,11.22,46111601,520188478,49039,11.21,203900,11.20,23000,11.19,33800,11.18,44700,11.17,66397,11.22,207215,11.23,151600,11.24,190861,11.25,75400,11.26,2010-01-15,15:02:07




html代码:
<input type="button" value="提交" onclick="check1();">;


java代码:
public String testLogin() {
HttpServletRequest request=ServletActionContext.getRequest();
String str=request.getParameter("stockinfo");
String info="";
try {
info=  URLDecoder.decode(str,"GBK");
System.out.print(info);
} catch (UnsupportedEncodingException e) {
         e.printStackTrace();
}


请问大侠们,高手们,我该怎么办··在电脑前答复···!!!!!急死我了!!!

问题补充:
蔡华江 写道
$.post("one/login.action", {stockinfo:str}, callback);
}

ajax请求没有必要通过encodeURIComponent进行转换。


等我试下

问题补充:
蔡华江 写道
$.post("one/login.action", {stockinfo:str}, callback);
}

ajax请求没有必要通过encodeURIComponent进行转换。



那在java里面也不用info=  URLDecoder.decode(str,"GBK");
这样了?

问题补充:不行啊,java代码里面拿到的还是个乱码
String str=request.getParameter("stockinfo");

System.out.print(str);

输出结果:??????é????°,10.95,10.84,11.21,11.52,10.94,11.21,11.22,46111601,520188478,49039,11.21,203900,11.20,23000,11.19,33800,11.18,44700,11.17,66397,11.22,207215,11.23,151600,11.24,190861,11.25

问题补充:写一个过滤器呀!呵呵!

struts2不是自带的有过滤机制么···!

问题补充:
honglove 写道
你用是Struts2还是struts1呢?



用的struts2.1.8

问题补充:我从jsp页面用form表单提交的中文值是正确的,没有乱码

问题补充:
honglove 写道
<constant name="struts.i18n.encoding" value="GBK"/>用这个就行了!呵呵


这是我的struts配置
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "struts-2.0.dtd">
<struts>
<constant name="devMode" value="true"></constant>
<constant name="struts.locale" value="zh_CN"></constant>
<constant name="struts.i18n.encoding" value="GBK"></constant>
<constant name="struts.action.extension" value="action,do"></constant>
<include file="actions.xml"></include>
</struts>

问题补充:
glagra 写道
$.get("addLinkManGroupAjax.shtml?abc="+encodeURIComponent(中文值);这样就行了..我试过..希望能帮到你...



那java代码里还是该怎么写呢?

问题补充:已经解决,原来是mecplse的编码格式没有改GBK,谢谢各位大虾了~~!!!
2010年1月16日 19:05

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

0 0

采纳的答案

你加我的QQ吧!我给你看看呀!438562168

2010年1月16日 19:33
0 0

引用
$.get("addLinkManGroupAjax.shtml?abc="+encodeURIComponent(中文值);

这种方式就是通过浏览器地址表示,所以后面的中文字符需要做encode处理。在服务器端也同样要进行decode处理。并有在客户端通常也不是只encode一次,而是两次。
$.get("addLinkManGroupAjax.shtml?abc="+encodeURI(encodeURI(中文值));


不过说过,这种方法并不一定好,既然使用了ajax,那么将数据放到data中,通常都不需要进行手动转化。
$.get("addLinkManGroupAjax.shtml",{abc:'中文值'});


不过,这些字符处理都并不针对页面流,所以通常还需要在servlet请求前设置request的编码,这个可以通过在web.xml中配置filter过滤来实现。三楼就列出了详细的设置。

2010年1月16日 22:25
0 0

如果不行,encodeURI调两次

...
var str = encodeURI(encodeURI(hq_str_sh600872)); 
...

2010年1月16日 21:44
0 0

页面上使用encodeURI而不是encodeURIComponent

...
var str=encodeURI(hq_str_sh600872); 
...


后台代码:
...
info=  URLDecoder.decode(str,"utf-8"); 
...

2010年1月16日 21:42
0 0

呵呵!出来了!你把js中的编码集也要改成和jsp页面一样的呀!

2010年1月16日 21:39
0 0

$.get("addLinkManGroupAjax.shtml?abc="+encodeURIComponent(中文值);这样就行了..我试过..希望能帮到你...

2010年1月16日 20:00
0 0

<constant name="struts.i18n.encoding" value="GBK"/>用这个就行了!呵呵

2010年1月16日 19:28
0 0

http://fishermen.iteye.com/blog/31896  这个你参考一下呀!

2010年1月16日 19:27
0 0

你用是Struts2还是struts1呢?

2010年1月16日 19:25
0 0

写一个过滤器呀!呵呵!package com.hnxz.oa.web.filter;

import java.io.IOException;
import java.util.Date;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.beanutils.ConvertUtils;
import com.hnxz.oa.web.converter.DateConverter;


public class EncodingFilter implements Filter {

protected FilterConfig filterConfig; // 获取参数的的变量
private String targetEncoding = "GB18030";

public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

/**
* 初始化过滤器获取初始参数
*/
public void init(FilterConfig config) throws ServletException {
ConvertUtils.register(new DateConverter(),Date.class);
this.filterConfig = config;
targetEncoding = config.getInitParameter("encoding");
}

/**
* 进行过滤处理的方法
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) srequest;
request.setCharacterEncoding(targetEncoding);
chain.doFilter(srequest, sresponse); // 把处理权发送到下一个
}

/**
* 销毁过滤器
*/
public void destroy() {
filterConfig = null;
}

}
web.xml是:

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
过滤器的路径
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2010年1月16日 19:21
0 0

嗯。encodeURIComponent主要是对地址栏中的参数进行转化。
普通通过form和ajax提交都不需要转换

2010年1月16日 19:13
0 0

$.post("one/login.action", {stockinfo:str}, callback);
}

ajax请求没有必要通过encodeURIComponent进行转换。

2010年1月16日 19:09

相关推荐

    SSH框架解决中文乱码

    假设我们有一个基于SSH框架的项目,其中包含了一个用于展示中文内容的页面。按照上述方法进行编码设置后,可以有效解决中文乱码问题。具体步骤包括: 1. 在`web.xml`中配置`CharacterEncodingFilter`过滤器。 2. 在...

    以SSH框架与jQuery技术为_省略_础的Java_Web开发应用探讨_何晶.pdf

    的高效应用,首先需要了解SSH框架和jQuery技术的基本概念及其特点。 SSH框架是Spring、Struts和Hibernate三个开源项目的简称,它们分别负责控制层、表现层和持久层的开发。Spring是一个全面的企业级应用框架,提供...

    SSH+jquery

    SSH是Spring、Struts2和Hibernate三个开源框架的缩写,而jQuery则是一个强大的JavaScript库。在这个通用CRUD(创建、读取、更新、删除)示例中,我们将深入探讨这些技术如何协同工作以实现数据操作。 **Spring框架*...

    基于SSH框架与jQuery技术的JavaWeb开发应用

    ### 基于SSH框架与jQuery技术的JavaWeb开发应用 #### 一、引言 在当前快速发展的互联网时代,Web应用的需求日益增加,对于Web应用的开发也提出了更高的要求。传统的Java Web开发中,经常使用JSP作为表现层技术,但...

    SSH+jQuery+Ajax框架做的地区选择

    SSH+jQuery+Ajax框架在构建地区选择功能时,结合了后端开发的高效性和前端交互的用户体验,形成了一个强大的Web应用程序解决方案。SSH是Struts2、Hibernate和Spring三大框架的简称,它们各自承担着不同的职责。 **...

    SSH+Jquery 源码(含数据库)

    SSH+jQuery 源码(含数据库)是一个典型的Web开发框架结合前端库的项目实例,主要涉及Spring、Struts2和Hibernate(SSH)三大Java开源框架以及jQuery JavaScript库。SSH框架是Java Web开发中常用的一套高效、轻量级...

    基于SSH jQuery框架的餐饮Web App的设计与实现.pdf

    在基于SSH + jQuery框架的餐饮Web App设计与实现中,首先,开发环境选择Windows操作系统,利用Eclipse作为开发工具,这为开发者提供了一个集成化的开发环境,便于代码编写、调试和项目管理。数据库方面,选用Oracle...

    一个简单的SSH框架程序

    这个“一个简单的SSH框架程序”很显然是一个基于这些技术构建的应用实例,用于帮助开发者理解并学习如何整合这三种框架。接下来,我们将深入探讨SSH框架以及与其相关的技术。 **Struts2框架**: Struts2是MVC...

    ssh框架乱码过滤器Filter

    在SSH框架中,处理中文乱码问题是一项常见的挑战,尤其是在表单提交时。本篇文章将详细探讨SSH框架中的中文乱码问题,以及如何通过实现自定义过滤器(Filter)来解决这一问题。 首先,我们要理解乱码的产生原因。在...

    基于SSH框架的智能停车系统(服务器与客户端)

    综上,"基于SSH框架的智能停车系统(服务器与客户端)"是一个结合了现代Java Web开发技术的实践项目,涵盖了从前端交互到后端处理的完整流程,对于学习和理解SSH框架的运用具有很高的价值。同时,它的可运行性和跨...

    ssh框架项目源码ssh框架项目源码ssh框架项目源码

    ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh框架项目源码ssh...

    简单的SSH+JQuery+JSON例子

    SSH指的是Struts、Spring和Hibernate这三个Java Web开发框架的缩写,而JQuery是一个强大的JavaScript库,JSON则是一种轻量级的数据交换格式。下面我们将详细探讨这些技术及其在实际项目中的应用。 首先,Struts是...

    ssh+jquery ui

    综合来看,这个项目是一个完整的前后端分离的Java Web应用,前端使用jQuery UI提供了良好的用户交互体验,后端则由SSH框架支持,处理业务逻辑并与MySQL数据库进行数据交互。这样的架构在实际开发中非常常见,既保证...

    ssh框架下ajax和jquery的增删该查的使用

    在SSH框架下,Ajax通过XMLHttpRequest对象向服务器发送异步请求,获取后台数据,然后通过JavaScript处理返回的数据,动态更新DOM元素。例如,用户在前端填写表单并点击保存按钮,Ajax请求会被触发,发送数据到服务器...

    SSH框架搭建源码

    这个压缩包文件"SSHdemo"提供了一个SSH框架搭建登录功能的示例,帮助开发者了解并实践如何整合这三个框架来构建一个完整的Web应用程序。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    当用户选择省份后,jQuery会发送Ajax请求到服务器,服务器使用SSH框架处理请求,查询数据库并返回JSON格式的城市数据,最后jQuery解析JSON并在前端更新城市选择框。 总结来说,这个压缩包提供的示例是一个基于SSH...

    基于SSH框架与jQuery技术的JavaWeb开发应用.pdf

    基于SSH框架与jQuery技术的JavaWeb开发应用.pdf

    SSH+Jquery easyUI后台管理系统

    SSH+jQuery EasyUI后台管理系统是一种基于Struts2(S)、Spring(S)和Hibernate(H)三大开源框架的Web应用程序开发模式,结合jQuery EasyUI前端框架,构建出高效、简洁且具有现代感的后台管理界面。这个系统设计的...

    SSH+JQuery插件+Mysql

    Test_unit可能是一个测试单元,可能包含了用于测试SSH+JQuery+Mysql集成的代码或者数据。在实际开发中,这样的测试单元对于确保各个组件正确工作和防止bug至关重要。 综上所述,SSH+JQuery+Mysql的组合提供了从前端...

Global site tag (gtag.js) - Google Analytics