shenzhinishimeng 2016-04-13 08:15 采纳率: 50%
浏览 1765
已结题

JSP中将数据存入数据库的时候乱码

JSP中将数据存入数据库的时候乱码。将网页的编码方式用GB2312或者UTF-8都是乱码图片说明图片说明图片说明
用的是JDBC的连接方式连接的数据库。具体的代码如下
第一页gengxin.jsp
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
request.setCharacterEncoding("GB2312");
%>



添加商品信息



添加新商品信息



商品编号:

商品类别:

商品名称:

商品价格:

商品数量:







第二页 转码的
<%!public String Bytes(String str) {
    try {

        String strOld = str;
        byte[] strNew = strOld.getBytes("GB2312");
        String bytes = new String(strNew);
        return bytes;
    } catch (Exception e) {
    }
    return null;
}%>
第三页
<%@ page language="java" contentType="text/html; charset=GB2312"
pageEncoding="GB2312"%>

<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
request.setCharacterEncoding("GB2312");
%>


成功添加新商品信息


<%@ include file="convert.jsp"%>
<%
Connection conn = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String strConn = "jdbc:sqlserver://localhost:1433;DatabaseName=lianxi";
String strUser = "sa";
String strPassword = "123456";
conn = DriverManager.getConnection(strConn, strUser, strPassword);
Statement stmt = conn.createStatement();
String p_id = Bytes(request.getParameter("p_id"));
String p_type = Bytes(request.getParameter("p_type"));
String p_name = Bytes(request.getParameter("p_name"));
float p_price = Float.parseFloat(request.getParameter("p_price"));
int p_quantity = Integer.parseInt(request.getParameter("p_quantity"));
out.print("p_id的值" + p_id + "
");
out.print("p_type的值" + p_type + "
");
out.print("p_name的值" + p_name + "
");
out.print("p_price的值" + p_price + "
");
out.print("p_quantity的值" + p_quantity + "
");
        String strSql = "INSERT INTO product values('" + p_id + "','" + p_type + "','" + p_name + "','"
                + p_price + "','" + p_quantity + "')";
        //String strSql = "insert into product(p_id,p_type,p_name,p_price,p_quantity)values(?,?,?,?,?)";
        int intTemp = stmt.executeUpdate(strSql);
        if (intTemp != 0) {
            out.println("<font size=4pt color='red'>" + "商品添加成功!" + "</font>");
        } else {
            out.println("<font size=4pt color='red'>" + "商品添加失败!" + "</font>");
        }

    } catch (Exception e) {
        out.println(e.toString());
    }
%>


  • 写回答

3条回答 默认 最新

  • niaonao 2016-04-13 23:01
    关注

    request.setCharacterEncoding("utf-8");
    page language="java" contentType="text/html; charset=GB2312"
    pageEncoding="GB2312"%>

    编码 GB2312 换成 utf-8

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)