日期:2014-05-18 浏览次数:21018 次
CREATE TABLE `student` (                 
           `id` int(11) NOT NULL auto_increment,  
           `name` varchar(20) default NULL,       
           `age` int(11) default NULL,            
           PRIMARY KEY  (`id`)                    
         ) ENGINE=InnoDB DEFAULT CHARSET=gbk
------解决方案--------------------
楼主的问题好像是在操作数据库的客户端如(SQLyogEnt)中显示的是乱码?
如果是的话,在SQLyogEnt中试试 set names"gbk"
这是在set names"gbk"显示中文的方法
------解决方案--------------------
提交form表单时编码出现错误,你可以通过ActionServlet对字符进行统一处理来解决问题。
1.在web.xml做如下修改,红色部分Servlet类路径
 <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>test.servlet.MyActionServlet</servlet-class>
   <init-param>
     <param-name>config</param-name>
     <param-value>/WEB-INF/struts-config.xml</param-value>
   </init-param>
   
   <load-on-startup>2</load-on-startup>
 </servlet>
2.servlet 类
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyActionServlet extends org.apache.struts.action.ActionServlet
{
	private static final long serialVersionUID = 1L;
	protected void process(HttpServletRequest request, HttpServletResponse response)
	throws java.io.IOException, javax.servlet.ServletException
	{
	    /**@todo Override this org.apache.struts.action.ActionServlet method*/
	    request.setCharacterEncoding("GBK");
	    super.process(request, response);
	}
}
建议使用UTF-8编码
------解决方案--------------------
String text= new String(request.getParameter("text").getBytes("ISO8859_1"), "GBK");
这是乱码国际化标准转化