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 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)