`
qingfengxia
  • 浏览: 87777 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

:Java的AJAX请求中文编码方法

阅读更多

这里的方案是页面(page)是基于GBK(gb2312) 的编码格式

AJAX的中文情况,默认情况下,tomcat和weblogic的get和post请求的编码方案都不一样,不过前提都是要设置 request.setCharactorEncoding("UTF-8")如下面代码中,get方案是很烦琐的那种将得到的参数重新编码来实现 的|new String(request.getParameter("para name").getBytes("encoding name"))|而post方案是比较简单而方便的,也提倡使用这种方式,因为可以基于filter来管理编码
tomcat可以通过设置在server.xml里的Connector元素下设置URIencoding="gbk"参数来让get使用 post的方案(即get和post都使用request.setCharactorEncoding("UTF- 8"),request.getParameter("para name") )具体设置参考http://www.iteye.com/topic/131542,不过在weblogic下无解(我个人还没发现如何实 现),weblogic好像在解析get参数后自己又用什么编码格式包装过......其实AJAX get根本没有普通请求get请求作为标签的作用,我们完全可以不使用get,而只使用post

测试用的jsp和servlet在下面,丢到一个项目里,在web.xml里配置servlet后运行可以看到效果,servlet的url- pattern是这个<url-pattern>/GetAndPostExample</url-pattern>

getAndPostExample.jsp

Java代码 复制代码
  1. <%@ page language= "java"   import = "java.util.Date"   contentType= "text/html; charset=gbk" %>  
  2. <html>  
  3.     <head>  
  4.         <title>发送带参数的信息到服务器,以及get,post的区别</title>  
  5.         <script type="text/javascript" >  
  6.             var xmlHttp;              
  7.             function show()  
  8.                 {  
  9.                 document.getElementById("show" ).value=document.getElementById( "firstName" ).value;  
  10.                 }  
  11.             function createXMLHttpRequest()  
  12.                 {  
  13.                 if  (window.ActiveXObject)  
  14.                     xmlHttp = new  ActiveXObject( "Microsoft.XMLHTTP" );  
  15.                 else   if  (window.XMLHttpRequest)  
  16.                     xmlHttp = new  XMLhttpRequest();  
  17.                 }  
  18.               
  19.             function createQueryString()  
  20.                 {  
  21.                 var firstName = document.getElementById("firstName" ).value;  
  22.                 var secondName = document.getElementById("secondName" ).value;  
  23.                 var birthday = document.getElementById("birthday" ).value;  
  24.                   
  25.                 var queryString = "firstName=" +firstName+ "&secondName=" +secondName  
  26.                                                 +"&birthday=" +birthday;  
  27.                 return  queryString;  
  28.                 }  
  29.               
  30.             function doRequestUsingGET()  
  31.                 {  
  32.                 createXMLHttpRequest();  
  33.                 show();  
  34.                 var queryString = "GetAndPostExample?" ;  
  35.                 queryString = queryString + createQueryString()  
  36.                                         + "&timeStamep="  +  new  Date().getTime();  
  37.                 xmlHttp.onreadystatechange = handleStateChange;  
  38.                 xmlHttp.open("GET" ,queryString, true );  
  39.                                     xmlHttp.setRequestHeader("RequestType" , "ajax" );  
  40.                 xmlHttp.send(null );  
  41.                 //alert(queryString);   
  42.                 }  
  43.                   
  44.             function doRequestUsingPOST()  
  45.                 {  
  46.                 createXMLHttpRequest();  
  47.                 show();       
  48.                 var url = "GetAndPostExample"   
  49.                 var queryString = createQueryString()+ "&timeStamp=" new  Date().getTime();           
  50.                 xmlHttp.open("POST" ,url, true );  
  51.                 xmlHttp.onreadystatechange = handleStateChange;  
  52.                 xmlHttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded;" );  
  53.                                      //设置报头,说明此请求是ajax请求   
  54.                                      xmlHttp.setRequestHeader("RequestType" , "ajax" );  
  55.                 xmlHttp.send(queryString);  
  56.                 }  
  57.                   
  58.             function handleStateChange()  
  59.                 {  
  60.                 if  (xmlHttp.readyState ==  4 )  
  61.                     {  
  62.                     if  (xmlHttp.status ==  200 )  
  63.                         parseResults();  
  64.                     }  
  65.                 }  
  66.               
  67.             function parseResults()  
  68.                 {  
  69.                 var responseDiv = document.getElementById("serverResponse" );  
  70.                 if  (responseDiv.hasChildNodes())  
  71.                     {  
  72.                     responseDiv.removeChild(responseDiv.childNodes[0 ]);  
  73.                     }  
  74.                 var responseText = document.createTextNode(xmlHttp.responseText);  
  75.                 responseDiv.appendChild(responseText);  
  76.                 }  
  77.               
  78.         </script>  
  79.     </head>  
  80.     <body>  
  81.         <h1>输入你的姓,名,生日日期</h1>  
  82.         <br>  
  83.           
  84.             <table>  
  85.                 <tr>  
  86.                     <td>  
  87.                         姓:  
  88.                     </td>  
  89.                     <td>  
  90.                         <input type="text"  name= "firstName"  id= "firstName"  value= "羽飞" >  
  91.                     </td>  
  92.                 </tr>  
  93.                     <td>  
  94.                         名:  
  95.                     </td>  
  96.                     <td>  
  97.                         <input type="text"  name= "secondName"  id= "secondName"  value= "翼" >  
  98.                     </td>  
  99.                 <tr>  
  100.                 </tr>  
  101.                 <tr>  
  102.                     <td>  
  103.                         生日:  
  104.                     </td>  
  105.                     <td>  
  106.                         <input type="text"  name= "birthday"  id= "birthday"  value= "五月" >  
  107.                     </td>  
  108.                     <td>  
  109.                         <input type="text"  name= "show"  id= "show" >  
  110.                     </td>  
  111.                 </tr>  
  112.             </table>  
  113.         <form action="#" >  
  114.             <input type="button"  value= "使用GET提交"  onclick= "doRequestUsingGET();" >  
  115.             <br>  
  116.             <input type="button"  value= "使用POST提交"  onclick= "doRequestUsingPOST();" >  
  117.         </form>  
  118.         <br>  
  119.         <br>        
  120.         <h2>服务器返回信息:</h2>         
  121.         <div id="serverResponse" >  
  122.         </div>  
  123.     </body>  
  124. </html>  
<%@ page language="java" import="java.util.Date"  contentType="text/html; charset=gbk"%>
<html>
	<head>
		<title>发送带参数的信息到服务器,以及get,post的区别</title>
		<script type="text/javascript">
			var xmlHttp;			
			function show()
				{
				document.getElementById("show").value=document.getElementById("firstName").value;
				}
			function createXMLHttpRequest()
				{
				if (window.ActiveXObject)
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				else if (window.XMLHttpRequest)
					xmlHttp = new XMLhttpRequest();
				}
			
			function createQueryString()
				{
				var firstName = document.getElementById("firstName").value;
				var secondName = document.getElementById("secondName").value;
				var birthday = document.getElementById("birthday").value;
				
				var queryString = "firstName="+firstName+"&secondName="+secondName
												+"&birthday="+birthday;
				return queryString;
				}
			
			function doRequestUsingGET()
				{
				createXMLHttpRequest();
				show();
				var queryString = "GetAndPostExample?";
				queryString = queryString + createQueryString()
										+ "&timeStamep=" + new Date().getTime();
				xmlHttp.onreadystatechange = handleStateChange;
				xmlHttp.open("GET",queryString,true);
                                    xmlHttp.setRequestHeader("RequestType","ajax");
				xmlHttp.send(null);
				//alert(queryString);
				}
				
			function doRequestUsingPOST()
				{
				createXMLHttpRequest();
				show();		
				var url = "GetAndPostExample"
				var queryString = createQueryString()+ "&timeStamp="+ new Date().getTime();			
				xmlHttp.open("POST",url,true);
				xmlHttp.onreadystatechange = handleStateChange;
				xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
                                     //设置报头,说明此请求是ajax请求
                                     xmlHttp.setRequestHeader("RequestType","ajax");
				xmlHttp.send(queryString);
				}
				
			function handleStateChange()
				{
				if (xmlHttp.readyState == 4)
					{
					if (xmlHttp.status == 200)
						parseResults();
					}
				}
			
			function parseResults()
				{
				var responseDiv = document.getElementById("serverResponse");
				if (responseDiv.hasChildNodes())
					{
					responseDiv.removeChild(responseDiv.childNodes[0]);
					}
				var responseText = document.createTextNode(xmlHttp.responseText);
				responseDiv.appendChild(responseText);
				}
			
		</script>
	</head>
	<body>
		<h1>输入你的姓,名,生日日期</h1>
		<br>
		
			<table>
				<tr>
					<td>
						姓:
					</td>
					<td>
						<input type="text" name="firstName" id="firstName" value="羽飞">
					</td>
				</tr>
					<td>
						名:
					</td>
					<td>
						<input type="text" name="secondName" id="secondName" value="翼">
					</td>
				<tr>
				</tr>
				<tr>
					<td>
						生日:
					</td>
					<td>
						<input type="text" name="birthday" id="birthday" value="五月">
					</td>
					<td>
						<input type="text" name="show" id="show">
					</td>
				</tr>
			</table>
		<form action="#">
			<input type="button" value="使用GET提交" onclick="doRequestUsingGET();">
			<br>
			<input type="button" value="使用POST提交" onclick="doRequestUsingPOST();">
		</form>
		<br>
		<br>		
		<h2>服务器返回信息:</h2>		
		<div id="serverResponse">
		</div>
	</body>
</html>



GetAndPostExample.java

Java代码 复制代码
  1. package  yufei;  
  2.   
  3. import  java.io.*;  
  4. import  java.net.*;  
  5. import  javax.servlet.*;  
  6. import  javax.servlet.http.*;  
  7.   
  8. public   class  GetAndPostExample  extends  HttpServlet  
  9.     {  
  10.         protected   void  processRequest(HttpServletRequest request,  
  11.                 HttpServletResponse response, String method1)  
  12.                 throws  ServletException,IOException  
  13.                 {  
  14.                 //设置文本类型(content type)   
  15.                 response.setContentType("text/xml" );  
  16.                                      //设置文本类型的编码格式   
  17.                 response.setCharacterEncoding("GBK" );  
  18.                 response.setHeader("Cache-Control" , "no-cache" );  
  19.                   
  20.                 String firstName =null ;  
  21.                 String secondName = null ;  
  22.                 String birthday = null ;  
  23.                                     //无论是get还是post,都要使用下面这句   
  24.                                     request.setCharacterEncoding("UTF-8" );  
  25.                 if  (method1.equals( "GET" ))  
  26.                 {                  
  27.                  firstName = new  String(request.getParameter( "firstName" ).getBytes( "ISO8859-1" ));  
  28.                  secondName = new  String(request.getParameter( "secondName" ).getBytes( "ISO8859-1" ));  
  29.                  birthday = new  String(request.getParameter( "birthday" ).getBytes( "ISO8859-1" ));  
  30.                 }  
  31.                 else   if  (method1.equals( "POST" ))  
  32.                 {                            firstName = request.getParameter("firstName" );  
  33.                  secondName = request.getParameter("secondName" );  
  34.                  birthday = request.getParameter("birthday" );  
  35.                 }     
  36.                 String responseText = "Hello "  + firstName +  " "  + secondName  
  37.                                 + " 你的生日是 "  + birthday +  " "  +  "(method: "  + method1 +  ")" ;               
  38.                 PrintWriter out = response.getWriter();  
  39.                 out.println(responseText);  
  40.                   
  41.                 out.close();  
  42.                 }  
  43.         protected   void  doGet(HttpServletRequest request,  
  44.                 HttpServletResponse response)  
  45.                 throws  ServletException,IOException  
  46.                 {  
  47.                 processRequest(request,response,"GET" );  
  48.                 }  
  49.         protected   void  doPost(HttpServletRequest request,  
  50.                 HttpServletResponse response)  
  51.                 throws  ServletException,IOException  
  52.                 {  
  53.                 processRequest(request,response,"POST" );  
  54.                 }  
  55.     }  
package yufei;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class GetAndPostExample extends HttpServlet
	{
		protected void processRequest(HttpServletRequest request,
				HttpServletResponse response, String method1)
				throws ServletException,IOException
				{
				//设置文本类型(content type)
				response.setContentType("text/xml");
                                     //设置文本类型的编码格式
				response.setCharacterEncoding("GBK");
				response.setHeader("Cache-Control","no-cache");
				
				String firstName =null;
				String secondName = null;
				String birthday = null;
                                    //无论是get还是post,都要使用下面这句
                                    request.setCharacterEncoding("UTF-8");
				if (method1.equals("GET"))
				{			     
				 firstName = new String(request.getParameter("firstName").getBytes("ISO8859-1"));
				 secondName = new String(request.getParameter("secondName").getBytes("ISO8859-1"));
				 birthday = new String(request.getParameter("birthday").getBytes("ISO8859-1"));
				}
				else if (method1.equals("POST"))
				{				 			 firstName = request.getParameter("firstName");
				 secondName = request.getParameter("secondName");
				 birthday = request.getParameter("birthday");
				}	
				String responseText = "Hello " + firstName + " " + secondName
								+ " 你的生日是 " + birthday + " " + "(method: " + method1 + ")";				
				PrintWriter out = response.getWriter();
				out.println(responseText);
				
				out.close();
				}
		protected void doGet(HttpServletRequest request,
				HttpServletResponse response)
				throws ServletException,IOException
				{
				processRequest(request,response,"GET");
				}
		protected void doPost(HttpServletRequest request,
				HttpServletResponse response)
				throws ServletException,IOException
				{
				processRequest(request,response,"POST");
				}
	}



-
-

当我们的ajax请求只使用post(tomcat下可以实现get和post同样方案)请求时,我们可以使用过滤器来实现其编码设置,就可以把 servlet中的request.setCharactorEncoding提出来,去掉servlet里的 request.setCharactorEncoding("encoding name"),加入下面的过滤器
根据fins大大的指导,将过滤器重写为可以区分普通请求和ajax请求的样式了(ajax请求中设置了header)

SetCharacterEncodingFilter.java

Java代码 复制代码
  1. package  yufei;  
  2.   
  3. import  java.io.IOException;  
  4. import  javax.servlet.FilterChain;  
  5. import  javax.servlet.FilterConfig;  
  6. import  javax.servlet.ServletException;  
  7. import  javax.servlet.ServletRequest;  
  8. import  javax.servlet.ServletResponse;  
  9. import  javax.servlet.Filter;  
  10. import  javax.servlet.http.HttpServletRequest;  
  11.   
  12. public   class  CharactorEncodingFilter  implements  Filter  
  13.     {  
  14.     public  CharactorEncodingFilter()  
  15.         {  
  16.         super ();  
  17.         }  
  18.     private  FilterConfig filterConfig;  
  19.     private  String ajaxEncoding =  "UTF-8" ;  
  20.     private  String commonEncoding;  
  21.     protected   boolean  ignore =  true ;  
  22.     public   void  init(FilterConfig filterConfig)  throws  ServletException  
  23.         {  
  24.         this .filterConfig = filterConfig;  
  25.         commonEncoding = filterConfig.getInitParameter("CommonRequestEncoding" );  
  26.         String value = filterConfig.getInitParameter("ignore" );  
  27.         if  (value ==  null )  
  28.             this .ignore =  true ;  
  29.         else   if  (value.equalsIgnoreCase( "true" ))  
  30.             this .ignore =  true ;  
  31.         else   if  (value.equalsIgnoreCase( "yes" ))  
  32.             this .ignore =  true ;  
  33.         else   
  34.             this .ignore =  false ;  
  35.         }  
  36.   
  37.     public   void  doFilter(ServletRequest req, ServletResponse res,  
  38.         FilterChain filterChain)  
  39.   
  40.         {  
  41.         try   
  42.             {  
  43.             HttpServletRequest request = (HttpServletRequest) req;  
  44.             if  (ignore || (request.getCharacterEncoding() ==  null ))  
  45.                 {  
  46.                 if  (request.getHeader( "RequestType" ) !=  null   
  47.                     && request.getHeader("RequestType" )  
  48.                         .equalsIgnoreCase("ajax" ))  
  49.                     {  
  50.                     request.setCharacterEncoding(ajaxEncoding);  
  51.                     }  
  52.                 else   if  (commonEncoding !=  null )  
  53.                     {  
  54.                     request.setCharacterEncoding(commonEncoding);  
  55.                     }  
  56.                 else   
  57.                     {  
  58.                     request.setCharacterEncoding("UTF-8" );  
  59.                     }  
  60.                 }  
  61.             filterChain.doFilter(req, res);  
  62.             }  
  63.         catch  (IOException e)  
  64.             {  
  65.             e.printStackTrace();  
  66.             }  
  67.         catch  (ServletException e)  
  68.             {  
  69.             e.printStackTrace();  
  70.             }  
  71.         }  
  72.     public   void  destroy()  
  73.         {  
  74.         this .commonEncoding =  null ;  
  75.         this .filterConfig =  null ;  
  76.         }  
  77.     }  
package yufei;

import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;

public class CharactorEncodingFilter implements Filter
	{
	public CharactorEncodingFilter()
		{
		super();
		}
	private FilterConfig filterConfig;
	private String ajaxEncoding = "UTF-8";
	private String commonEncoding;
	protected boolean ignore = true;
	public void init(FilterConfig filterConfig) throws ServletException
		{
		this.filterConfig = filterConfig;
		commonEncoding = filterConfig.getInitParameter("CommonRequestEncoding");
		String value = filterConfig.getInitParameter("ignore");
		if (value == null)
			this.ignore = true;
		else if (value.equalsIgnoreCase("true"))
			this.ignore = true;
		else if (value.equalsIgnoreCase("yes"))
			this.ignore = true;
		else
			this.ignore = false;
		}

	public void doFilter(ServletRequest req, ServletResponse res,
		FilterChain filterChain)

		{
		try
			{
			HttpServletRequest request = (HttpServletRequest) req;
			if (ignore || (request.getCharacterEncoding() == null))
				{
				if (request.getHeader("RequestType") != null
					&& request.getHeader("RequestType")
						.equalsIgnoreCase("ajax"))
					{
					request.setCharacterEncoding(ajaxEncoding);
					}
				else if (commonEncoding != null)
					{
					request.setCharacterEncoding(commonEncoding);
					}
				else
					{
					request.setCharacterEncoding("UTF-8");
					}
				}
			filterChain.doFilter(req, res);
			}
		catch (IOException e)
			{
			e.printStackTrace();
			}
		catch (ServletException e)
			{
			e.printStackTrace();
			}
		}
	public void destroy()
		{
		this.commonEncoding = null;
		this.filterConfig = null;
		}
	}



web.xml加入如下过滤器配置

Java代码 复制代码
  1. <filter>  
  2.     <filter-name>CharactorEncoding</filter-name>  
  3.     <filter-class >org.apache.struts2.dispatcher.FilterDispatcher</filter- class >  
  4.                  <!-- 设置编码格式到initparameter里去 -->  
  5.     <init-param>  
  6.         <param-name>CommonRequestEncoding</param-name>  
  7.         <param-value>GBK</param-value>  
  8.     </init-param>       
  9. </filter>  
  10. <filter-mapping>  
  11.     <filter-name>CharactorEncoding</filter-name>  
  12.     <url-pattern>/*</url-pattern>  
  13. </filter-mapping> 
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    java源码包---java 源码 大量 实例

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一...

    java源码包2

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

    java源码包4

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

    java源码包3

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 ...

    Ajax传递中文参数到后台乱码的有效解决方法

    使用Ajax传递中文参数,如果不对参数进行处理的话,传到后台会变成乱码,经测试可以使用如下方法 这里是以jquery.autocomplete插件中获取输入框中的数据传到后台为例: 注意要对中文使用encodeURI编码两次 代码如下:...

    JAVA上百实例源码以及开源项目源代码

     一个Java+ajax写的登录实例,附有JAVA源文件,JAVA新手朋友可以学习一下。 JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写的...

    ajax dwr 2.0 框架 jar包 中文官方文档 天涯浪子

    这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。DWR 还提供了帮助执行常见的用户界面任务的 ...

    java web 开发详解

    Java 的 Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向抽象实现请求和响应的...

    ajax到servlet乱码解决

    用ajax 通过url传参数给servlet时,在servlet提取时一直是乱码,即使用了统一的字符编码也没用。

    java web技术开发大全(最全最新)

    除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是...

    java web开发技术大全

    除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是...

    LojoRentVideoClub:使用DAO模式和JAVA 11,MySQL,Tomcat 8.5,Json Data和Ajax和jQuery的视频租用Web应用程序

    通过模拟视频存储的操作的AJAX请求创建了应用程序客户端。 与开发 :hammer_and_wrench: 工具和技术: -IDE项目,JAVA。 -IDE前端开发(JS,CSS3,HTML5)。 数据库。 数据库连接器。 -Gson库。 -JAVA 11。 ...

    ajax乱码解决汇总

    用AJAX 来GET回一个页面时,RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字...

    java开源包4

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

    java开源包11

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

    java开源包6

    WARTS是一个纯Java数据库工具,可以执行字符编码识别的数据同步。开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的...

Global site tag (gtag.js) - Google Analytics