日期:2014-05-18 浏览次数:20847 次
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");
这是乱码国际化标准转化