一种解决mySql数据库乱码的方法
2012-01-26 20:28
423 查看
首先在连接数据库时候指定使用的字符集
在表单提交是用POST方法,并且提交页面编码也是UTF-8;提交到Sevrlet中之后,用UTF-8读取,保证读取正确,然后写入。
具体例子:
html 填写界面:
静态代码:
处理添加的servlet:
显示数据库数据的servlet:
public static final String url = "jdbc:mysql://localhost:3306/comment?characterEncoding=UTF-8"; //这里非常关键,需要指定连接数据库的字符集,否则就是乱码
在表单提交是用POST方法,并且提交页面编码也是UTF-8;提交到Sevrlet中之后,用UTF-8读取,保证读取正确,然后写入。
//servlet中 request.setCharacterEncoding("UTF-8");
具体例子:
html 填写界面:
<!DOCTYPE html> <html> <head> <title>write.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <br> <form name="input" action="/comment/servlet/addContent" method="post"> name: <br /><input type="text" name="name" /> <br/><br/> content:<br /><textarea rows="5" cols="40" name ="content"> </textarea> <br /><input type="submit" value="提交" /> </form> </body> </html>
静态代码:
package info.dyndns.blog;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class Utility {
public static final String url = "jdbc:mysql://localhost:3306/comment?characterEncoding=UTF-8"; //这里非常关键,需要指定连接数据库的字符集,否则就是乱码
public static final String userName = "username1";
public static final String passWord = "password";
public static Connection getConn() throws SQLException
{
return DriverManager.getConnection(url,userName,passWord);
}
public static void free(Connection conn, Statement stat, ResultSet rs) {
if (rs != null)
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
if (stat != null)
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
if(conn != null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
处理添加的servlet:
package info.dyndns.blog; import java.io.IOException; import java.io.PrintWriter; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class addContent extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); Connection conn = null; Statement stat = null; String name = request.getParameter("name"); String content = request.getParameter("content"); try{ conn = Utility.getConn(); stat = conn.createStatement(); String sql = "insert into say (name, content) values("+"'"+name+"'"+",'"+content+"'"+")"; stat.executeUpdate(sql); } catch(SQLException e){ e.printStackTrace(); }finally{ Utility.free(conn, stat, null); response.sendRedirect("/comment/servlet/Display"); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
显示数据库数据的servlet:
package info.dyndns.blog; import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class Display extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement stat = null; ResultSet rs = null; response.setContentType("text/html;charset=utf-8"); PrintWriter pw = response.getWriter(); pw.print("<html><body>"); try{ conn = Utility.getConn(); stat = conn.createStatement(); String sql = "select * from say" ; rs = stat.executeQuery(sql); while(rs.next()) { pw.println("<br />" + rs.getObject("name")+ " says:"+"<br />"+" "); pw.println("<br />" + rs.getObject("content")); pw.print("<hr>"); } pw.print("<br /><br /><a href='/comment/write.html'>回首页</a>"); } catch(SQLException e){ e.printStackTrace(); } finally{ Utility.free(conn, stat, rs); pw.print("</body></html>"); }//end outside finally } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- 通过命令行导入到mysql数据库时出现乱码的解决方法
- JSP传递参数中文乱码问题的一种解决方法
- mysql数据库乱码之保存越南文乱码解决方法
- springMVC教程(四)保存数据到mysql数据库中文乱码问题解决方法
- 连接mysql数据库,中文乱码的解决方法~~~
- 解决Spring MVC中get请求参数乱码的一种不改tomcat配置解决方法
- mysql数据库出现乱码解决方法
- eclipse插入数据到MySQL数据库时,出现中文乱码问题的解决方法
- mysql数据库中文乱码解决方法之设置数据库汉字格式
- 关于php读mysql数据库时出现乱码的解决方法
- Oracle乱码的一种解决方法
- 从JSP WEB页面往数据库写入出现乱码的一种解决方法
- DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
- 解决DOS下查询mysql数据库中文乱码方法
- MYSQL数据库乱码问题解决方法之一
- 在struts2种解决url中文乱码的方法(其中一种方法)
- Mac下,MySQL数据库中文乱码的解决方法
- QT中一种中文乱码问题的解决方法
- 解决java/jsp乱码的一种转换方法
- 通过命令行导入到mysql数据库时出现乱码的解决方法