ajax提交到servelt获取参数有乱码的解决方法
在这里,假设读者了解基本的
ajax
技术或更多。我仅仅阐述一个现象,一个解决方法;原因、
原理,同样不清楚
……
我们先从简单的着手,
servlet传值到JSP页面js
脚本中,利用脚本将相关值显示在页面。解决这个方向(servlet——javascript)的中文乱码问题很简单。只需要在
servlet中,添加一个
response.setContentType("text/html;charset=UTF-8");
而且JSP页面编码方式可以随意设定,GBK、GB2312、UTF-8,当然
ISO-8859-1是不行的,至少你要在页面显示中文。
从js脚本传中文到servlet,问题因xmlHttp对象open()方法中,传值方式(GET、POST)不同,而分为两种情况:
在介绍这个问题之前,先将两种传值方式区别展示一下:
假设传递值“软件工程”,变量名为“selcol”。
function selectCol(){
createXMLHttpRequest();
var selcol = "
";
var url = "/emp/FindSpecial?selcol=" + selcol;
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function selectCol(){
createXMLHttpRequest();
var selcol = "selcol=软件工程";
var url = "/emp/FindSpecial";
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("POST",url,true);
xmlHttpxmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send(selcol);
}
如果使用GET方式传递,那么我们在servlet拿值的时候,以如下方式转编码:
代码如下:
String selcol = new String(request.getParameter("selcol").getBytes("ISO-8859-1"), "GBK");
转GBK、GB2312都行,转UTF-8不行!
这个时候也许你会很奇怪的发现,这两个语句竟然同时出现:
代码如下:
response.setContentType("text/html;charset=UTF-8");
String selcol = new String(request.getParameter("selcol").getBytes("ISO-8859-1"), "GBK");
个人是这样理解的:第一句仅保证,从此servlet传递出去的数据编码方式为UTF-8;
而后者则是将传递进来的数据转化成GBK编码的数据。方便与辨别和处理。
如果使用POST方式传递,那么我们在servlet拿值的时候,同上,只是将编码转为UTF-8,
String selcol = new String(request.getParameter("selcol").getBytes ("ISO-8859-1"), "UTF-8");
相关推荐
-
java读写oracle的blob字段示例
复制代码 代码如下: package com.wanmei.meishu; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.InputStream;import java.io.OutputStream;import java.sql.Connection;import java.sql.DriverManager;import java
-
java调用oracle分页存储过程示例
1.分页类 复制代码 代码如下: package org.zh.basic; /** * 页面类 * * @author keven * */public class PageInfo { // 定义 private String p_tableName; // -表名 private String p_strWhere; // --查询条件 private String p_orderColumn; // --排序的列 private String p_orderS
-
java使用jdbc链接Oracle示例类分享
复制代码 代码如下: public class OracleJdbcTest { String driverClass = "oracle.jdbc.driver.OracleDriver"; Connection con; public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException {
-
Java实现JSP在Servelt中连接Oracle数据库的方法
本文实例讲述了Java实现JSP使用Servelt连接Oracle数据库的方法.为了实现在Servlet 中连接数据库,必须编写Servlet 的类程序.将Servlet 类程序放到WEB 服务器的servlets 或者classes 目录下面,为调用Servlet,需要创建发送Servlet 请求的HTML 文档.本例通过(Driver)Class.forName(driverName).newInstance()方法来实现加载驱动程序,建立与数据库连接. 具体程序代码为: 1.Databas
-
Java使用JDBC连接Oracle_MSSQL实例代码
一.Statement 复制代码 代码如下: import java.sql.*; public class TestJDBC { public static void main(String[] args) { Connection oracle_conn = null; Statement oracle_stmt = null; ResultSet oracle_rs = null; Connection mssql_conn = null; Statement mssql_stmt
-
java操作oracle数据库示例
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: 复制代码 代码如下: /** * 一个非
-
JSP连接MySql/MS SQL Server/Oracle数据库连接方法[整理]
JSP连接MySql数据库方法 首先先将MySql的数据库连接驱动拷贝到Tomcat/common/lib包下 下载mysql-connector-java-5.1.6.zip http://mysql.cs.pu.edu.tw/Downloads/Connector-J/mysql-connector-java-5.1.6.zip 配置Tomcat的虚拟目录-略 创建jdbcMySql.jsp页面 页面代码如下: 复制代码 代码如下: <%@ page contentType="text
-
在JSP中访问Oracle数据库
写第一个连接Oracle的JSP程序test.jsp1.连入SQL*Plus以system/manager用户登录,SQL> conn system/manager创建新的用户:如user1/pass1,赋予connect,resource权限.SQL> grant connect,resource to user1 identified by pass1;SQL> conn user1/pass1SQL> create table test(a number,b char(10)
-
JAVA简单链接Oracle数据库 注册和登陆功能的实现代码
复制代码 代码如下: //User 用户的基本信息,也是USERINFO表中的3个列package 登陆判断; public class User { private String name; private String loginname; private String loginpsw; public String getName() { return name; } public void setName(String name) { this.name = name;
-
ajax提交到servelt获取参数有乱码的解决方法
在这里,假设读者了解基本的 ajax 技术或更多.我仅仅阐述一个现象,一个解决方法:原因. 原理,同样不清楚 -- 我们先从简单的着手, servlet传值到JSP页面js 脚本中,利用脚本将相关值显示在页面.解决这个方向(servlet--javascript)的中文乱码问题很简单.只需要在 servlet中,添加一个 编码设置: 复制代码 代码如下: response.setContentType("text/html;charset=UTF-8"); 而且JSP页面编码方式可以随
-
使用AJAX实现UTF8编码表单提交到GBK编码脚本无乱码的解决方法
1.表单项目1 GBK编码格式 用户采集单是GBK编码,通过GET/POST提交上来的数据也是GBK格式,无需做任何处理 测试源码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="GB2312"> </head> <body> <li><a href="gbkForm.html" rel=&
-
asp.net URL中包含中文参数造成乱码的解决方法
问题: 前段时间,在系统中做了一个类似于友情链接的功能块,一直运行良好,直到有一天加了类似于以下的链接地址:http://www.****.com/user.aspx?id=水天,就出现大问题了: 1.从IE地址栏中直接输入这个地址,访问没错: 2.做一个静态页,其中包括这个超链接,点击访问也没错: 3.就是把这个链接添加到这个功能块中,点击访问那边接收到的是乱码. 一开始,被这个问题也搞得头大,在google了一把后,总算是把问题给搞清楚了,其实只要这个链接地址不经过任何编码传递是不会有问题的
-
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
本文实例讲述了JQuery中Post传递中文出现的解决方法,即乱码ajax与jquery.ajax中文参数post传递乱码处理方法.分享给大家供大家参考.具体分析如下: 问题一: 今天在做项目时,需要用到Ajax,之前我在用GET方式传递中文参数时,只需要在后台程序中设置页面编码为GB2312即中文能正常显示,可是这次由于表单项目较多,不适合用GET方式传递,只能用POST方式,但发现后台程序中设置编码为GB2312时中文还是显示的乱码.经过一番研究问题才最终得到解决. 解决方法: 解决此问题的
-
Egg.js 中 AJax 上传文件获取参数的方法
依赖 formidable 代码 前端 <fieldset style="margin: 20px; padding: 20px;"> <legend>单文件,Ajax</legend> <form id="form3"> <div> <input type="text" id="customName" placeholder="自定义文件名"
-
java表单提交中文乱码的解决方法
本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&
-
TinyMCE提交AjaxForm获取不到数据的解决方法
本文实例分析了TinyMCE提交AjaxForm获取不到数据的解决方法.分享给大家供大家参考.具体分析如下: 在没有使用AjaxForm前,我做的一个小小的评论提交的Web form,评论内容使用了TinyMCE做文本编辑.为了增加一点点的用户体验,就顺手拿AjaxForm来实现Ajax提交.可是发现出现了一个意外的事情.就是每次提交,第一次提交时,AjaxForm会无法获得当前编辑的评论内容,即TextArea里面的内容,要再点击一次提交,才能将TextArea的内容提交上去. 关键是Tiny
-
PHP采用get获取url汉字出现乱码的解决方法
本文实例讲述了PHP采用get获取url汉字出现乱码的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 本来打算这样使用 复制代码 代码如下: <a href="list.php?plate=辖区动态" charset="utf-8" target="main">[查看辖区动态]</a> 结果在list.php页面得到的是-–查看[辖区动怿] 一开始猜想可能是汉字的"态"这个编码和某些东西冲突
-
jQuery ajax方法传递中文时出现中文乱码的解决方法
本文实例讲述了jQuery ajax方法传递中文时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 使用jQuery的ajax方法,在传递中文时出现中文乱码,按照以前的方法,修改了jquery文件中的ajaxSetting也不好使 复制代码 代码如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse
-
JS传值出现中文参数乱码的解决方法
本文实例讲述了JS传值出现中文参数乱码的解决方法.分享给大家供大家参考,具体如下: function PopupFK(cNum,type){ var url = "contract!Paying.action"; url = url + "?contract.contractNum="+cNum+"&payingType="+type; // if(isEmpty($(_this).attr("payId"))){ /
随机推荐
- javascript限制文本框只允许输入数字(曾经与现在的方法对比)
- 正则表达式、分组、子匹配(子模式)、非捕获子匹配(子模式)
- Angularjs过滤器使用详解
- 简单实现js间歇或无缝滚动效果
- Kotlin 单例实例详解
- java使用Hex编码解码实现Aes加密解密功能示例
- iOS中的NSURLCache数据缓存类用法解析
- springboot+EHcache 实现文章浏览量的缓存和超时更新
- JS实现一个列表中包含上移下移删除等功能
- Javascript 5种方法实现过滤删除前后所有空格
- Python使用pygame模块编写俄罗斯方块游戏的代码实例
- 详解Golang 与python中的字符串反转
- PHP二进制与字符串之间的相互转换教程
- php5编程中的异常处理详细方法介绍
- 一个分页存储过程代码
- 纯js实现的积木(div层)拖动功能示例
- 谈谈Jquery中的children find 的区别有哪些
- JS上传图片预览插件制作(兼容到IE6)
- Android软件自动更新实现代码
- Android开发中怎样调用系统Email发送邮件(多种调用方式)