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

乱码问题

阅读更多



★★★★★★★★★
★               ★
★    web程序    ★
★               ★
★★★★★★★★★



//==========================//
jsp页面编码:GBK/GB2312

//==========================//
过滤器及配置
package com.cw.util;
public class Filter implements javax.servlet.Filter {

public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("gb2312");
chain.doFilter(request, response);

}

public void init(FilterConfig arg0) throws ServletException {


}

}
<filter>
  <filter-name>filteEncoding</filter-name>
  <filter-class>com.cw.util.Filter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>filteEncoding</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>


//====================//
数据库设置
库及表的属性字符集都要设为GB2312
在MYSQL安装目录找到my.ini文件,打开后将default-character-set设为GB2312(两处)






★★★★★★★★★
★               ★
★      java程序 ★
★               ★
★★★★★★★★★

package com.cw.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Date;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {

try {
Class.forName("com.mysql.jdbc.Driver");

//在URL中设置字符编码
String url = "jdbc:mysql://localhost:3306/test?user=root&password=mysql&useUnicode=true&characterEncoding=gb2312";
Connection conn = DriverManager.getConnection(url);
PreparedStatement pstm = conn
.prepareStatement("insert into stu(sname,stime) values(?,?)");


pstm.setString(1, "陈伟人的");
pstm.setDate(2, java.sql.Date.valueOf("2008-3-23"));

int count=pstm.executeUpdate();
if(count>0)
System.out.println("insert suc");
try {
//if(rs!=null)
// rs.close();
if(pstm!=null)
pstm.close();
if(conn!=null){
conn.close();
}
} catch (Exception e) {
// TODO: handle exception
}

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}


分享到:
评论
2 楼 weiweichen1985 2008-03-28  
mysql+ajax 从action返回值的乱码问题

页面编码是utf-8,mysql数据库编码是gbk

解决方案:

服务器端:
====================================
public ActionForward getcity(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {


String id=request.getParameter("id");

List list=uareaDAO.getcitys(id);
PrintWriter out=null;
try {
out=response.getWriter();
//response.setContentType("text/xml;charset=gbk");
//response.setHeader("charset", "gbk");
response.setHeader("Cache-Control", "no-cache");
out.println("<?xml version='1.0' encoding='utf-8'?>");
out.println("<names>");
for(int i=0;i<list.size();i++){

String name=list.get(i).toString();
StringBuffer sb=new StringBuffer("");
for(int j=0;j<name.length();j++){
if(name.charAt(j)==' '){
sb.append("");
}else{
sb.append(name.charAt(j));
}
}
//对汉字进行编码
name=java.net.URLEncoder.encode(sb.toString(), "utf-8");

out.println("<name>"+name+"</name>");
System.out.println(list.get(i).toString());
}
out.println("</names>");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}



客户端[部分代码]
============================================
var xml=xmlhttp.responseXML;
var names=xml.getElementsByTagName("name");
var city=document.getElementById("citys");
city.innerHTML="";


var name=null;
if(names.length>0){
   for(var i=0;i<names.length;i++){
         name=names[i];
         var option=document.createElement("option");
         //对汉字进行解码
         option.innerText=decodeURI(name.firstChild.data);
         city.appendChild(option);
   }
}
1 楼 weiweichen1985 2008-03-27  
补充
对于页面编码是utf-8,把过滤器中对应的设置请求编码也为utf-8即可。。。。

相关推荐

    乱码问题的解决

    "乱码问题的解决" 在 Web 开发中,乱码问题是常见的难题之一。乱码问题的出现主要是由于编码不一致引起的。编码不一致可能出现在多个方面,如页面编码、服务器编码、客户端编码、数据库编码等。在本文中,我们将...

    中文乱码问题分析 自己总结的

    中文乱码问题分析 中文乱码问题是 Java 和 JSP 开发中的一种常见问题,主要是由于 Java 和 JSP 源文件的保存方式是基于字节流的,而编译成 class 文件过程中,使用的编码方式与源文件的编码不一致所致。在 Java ...

    FORM表单中文乱码问题分析与解决

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

    hadoop中文乱码问题

    【Hadoop中文乱码问题详解】 在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储(HDFS)和分布式计算(MapReduce)的能力。然而,在处理包含中文字符的数据时,用户可能会遇到中文乱码的问题...

    解决JSP中文乱码问题

    解决 JSP 中文乱码问题 解决 JSP 中文乱码问题是一个很常见的问题,在 JSP 开发过程中,经常出现中文乱码的问题,可能一至困扰着大家。下面我们将详细讨论 JSP 中文乱码问题的成因和解决方法。 JSP 中文乱码问题的...

    解决web项目中出现的乱码问题,很方便

    在开发Web项目时,乱码问题常常困扰着开发者,它涉及到字符编码的处理,这是Web应用中的一个常见但至关重要的问题。本方案提供了一个简洁有效的解决方法,通过一个Java文件和在`web.xml`配置文件中的简单设置,可以...

    解决Ubuntu和Windows的文件乱码问题

    本文详细介绍了如何解决Ubuntu和Windows在处理文件时发生的乱码问题。 首先,我们需要了解文件乱码的原因。Windows系统中的许多纯文本文件(包括压缩文件)默认使用GBK编码,这是一种针对中文字符的扩展字符集。当...

    利用过滤器解决JavaWeb(JSP)的乱码问题

    在JavaWeb开发中,尤其是涉及到JSP页面时,乱码问题常常困扰着开发者。这个问题的出现通常是由于字符编码不一致导致的,而过滤器(Filter)作为一种强大的工具,可以有效地帮助我们解决这个问题。本文将详细讲解如何...

    Ajax中文乱码问题解决方案

    然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...

    Netty进制转换乱码问题

    在使用Netty进行TCP/IP通信时,我们可能会遇到数据进制转换导致的乱码问题。这个问题通常是由于数据编码不一致或者处理方式不当所引起的。在本文中,我们将深入探讨Netty中的进制转换和字符编码,并提供解决方案。 ...

    js出现乱码问题介绍大全

    ### JS出现乱码问题介绍大全 #### 一、引言 在Web开发中,字符编码问题经常困扰开发者,特别是当涉及到不同语言环境时。JavaScript作为前端开发的核心技术之一,在处理字符编码方面同样会遇到各种各样的乱码问题。...

    servlet中文乱码问题

    ### Servlet + Tomcat 中文乱码问题解析及解决方案 #### 一、中文乱码问题概述 在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致...

    tera term中文乱码问题

    总之,解决Tera Term中文乱码问题的核心在于确保客户端(Tera Term)和服务器端的字符编码一致。通过调整Linux服务器的`/etc/sysconfig/i18n`文件或Tera Term的配置,可以有效地避免中文乱码现象。记住,正确设置...

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

    Request.QueryString 乱码问题

    ### Request.QueryString 乱码问题解析及解决方案 在Web开发中,经常会遇到通过URL传递参数的情况。其中,`Request.QueryString`是ASP.NET中用于获取URL查询字符串(即URL中问号后的部分)的一种常用方法。然而,在...

    JAVA 乱码问题集合

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

    sqlite3 for delphi 解决中文乱码问题

    "sqlite3 for delphi 解决中文乱码问题"这个主题,正是针对这一问题提供了解决方案。这里我们将详细探讨SQLite3在Delphi中的应用,中文乱码的成因,以及如何通过自定义修改来解决这个问题。 首先,SQLite3是一个轻...

    Java Http请求传json数据乱码问题的解决

    在实际解决乱码问题的过程中,如果发现使用Base64加密传输中文数据还会出现问题,可以改用URL编码的方式来传输数据,即使用JavaScript的`encodeURI`函数对数据进行两次URL编码,后端接收到后进行一次URL解码即可。...

    MySQL数据库系统中文乱码问题及解决方案.pdf

    MySQL数据库系统中文乱码问题及解决方案 MySQL数据库系统中文乱码问题是指在使用MySQL数据库系统时,中文字符在存储、传输和显示过程中出现乱码的问题。这种问题的出现是由于字符集和编码方式的不兼容所致。 在...

Global site tag (gtag.js) - Google Analytics