wcf获取MySQL中午乱码_解决Struts插入数据库中文乱码问题 | 学步园

其实中文问题挺好解决的,关键的就两个地方设置对了就ok了。

方法一:

添加一个新类,其继承ActionServlet,并加入request.setCharacterEncoding("latin1");

其中字符集应该和数据库所使用的字符一致

修改连接字符串

方法二:

添加一个新类,其继承RequestProcessor

方法一:1、struts+jdbc情况下:

EncodeActionServlet继承ActionServlet

package classmate;

import org.apache.struts.action.*;

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

public class EncodeActionServlet extends ActionServlet

{

protected void process(

HttpServletRequest request,

HttpServletResponse response)

throws IOException, ServletException

{

HttpSession session = request.getSession(true);

if (session.isNew())//session超时{

response.sendRedirect("/logout.jsp");

return;

}request.setCharacterEncoding("latin1");//进行统一的中文转码latin1<1>super.process(request, response);

}

}

EncodeActionServlet在web.xml完成部署

actionServlet

classmate.EncodeActionServlet

1

actionServlet

*.do

还有一个关键的部分是在struts-config.xml中的数据库连接部分如下:

  <2>

2、如果是struts+hiberante就在hibernate.cfg.xml的配置的数据库连接部分如下:<?xml version="1.0"encoding="GB2312"?>

org.gjt.mm.mysql.Driver

jdbc:mysql://localhost/struts?useUnicode=true&characterEncoding=latin1  <3>

root

123456

true

net.sf.hibernate.dialect.MySQLDialect

方法二、还是在struts+jdbc下用自己的RequestProcessor去控制。MyRequestProcessor.java

package StudyNews;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.RequestProcessor;

import org.apache.struts.config.ForwardConfig;

import org.apache.commons.logging.Log;

public class MyRequestProcessor extends RequestProcessor {

public MyRequestProcessor() {}

protected boolean processPreprocess( HttpServletRequest request,

HttpServletResponse response ){

try{

request.setCharacterEncoding("latin1");//此处为自己用的数据库的字符集 <4>}

catch(Exception ex){

System.out.println("字符集设置失败");

}

return true;

}

}

它在struts-config.xml中配置如下:

数据库连接方面和上面一样。

总结:关键是<1><2><3><4>处的字符集设置要与自己数据库用的字符集一致。以前在struts

框架下往数据库插入中文失败的原因在于只设置了<1>处而没设置<2>处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值