亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP連接MySQL數據庫時中文編碼問題解決方法

2024-09-05 00:08:43
字體:
來源:轉載
供稿:網友

當我們用JDBC或者數據源,從數據庫中提取數據的時候,往往會出現亂碼問題。這主要是因為我們使用的數據庫編碼可能與我們網頁使用的編碼不一致,導致我們從數據庫中提取的數據在網頁中顯示出來的是亂碼。

我的運行環境仍然是eclipse3.2_Callisto+jdk1.5.0_03+Tomcat v5.5

 數據庫選用的是MySQL 4.1

 出現這種現象的原因是:

 我使用的MySQL的JDBC的驅動程序是mysqldrover.jar,這種驅動程序默認的情況下采用的是ISO-8859-1編碼。

 google一下,得知ISO/IEC 8859-1,又稱Latin-1或“西歐語言”,是國際標準化組織內ISO/IEC 8859的第一個8位字符集。它以ASCII為基礎,在空置的0xA0-0xFF的范圍內,加入192個字母及符號,藉以供使用變音符號的拉丁字母語言使用。顯然這種編碼不適合中國字。

 所以我們可以采用這種方法得到中文。

 舉個例子:

 我們可以先用MySQL創建一個數據庫:

use mysql;
create database BookDB;
use BookDB;
CREATE TABLE books
(id VARCHAR(8)
PRIMARY KEY,
name VARCHAR(24),
title VARCHAR(96),
price FLOAT,
yr INT,
description VARCHAR(30),
saleAmount INT);
INSERT INTO books VALUES(’201’,'王芳', 'Java編程指南',33.75, 1999, ’讓讀者輕輕松松掌握Java語言', 1000);
INSERT INTO books VALUES(’202’, '張丙', 'Weblogic技術參考', 45.99, 2002, ’真的不錯耶', 2000);
INSERT INTO books VALUES(’203’, '孫艷', 'Oracle數據庫教程', 40, 2003, ’關于Oracle的最暢銷的技術書', 2000);
INSERT INTO books VALUES(’204’, '大衛', '從Oak到Java: 語言的革命', 20.75, 1998, ’很值得一看', 2000);
INSERT INTO books VALUES(’205’, '阿明', 'Apache從入門到精通', 50.75, 2002, ’權威的Apache技術資料', 2000);
INSERT INTO books VALUES(’206’, '洪軍', 'Java與數據算法', 54.75, 2002, ’權威的Java技術資料', 2000);

接著我們就可以做一個簡單的JSP文件來查詢我們的BookDB了

取名為Dbjsp.jsp

<!--首先導入一些必要的packages-->
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<!--告訴編譯器使用SQL包-->
<%@ page import="java.sql.*"%>
<!--設置中文輸出-->
<%@ page language="java" contentType="text/html; charset=GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>DbJsp.jsp</title>
</head>
<body>
<%
//以try開始
try
{
Connection con;
Statement stmt;
ResultSet rs;
//加載驅動程序,下面的代碼為加載MySQL驅動程序
Class.forName("com.mysql.jdbc.Driver");
//注冊MySQL驅動程序
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//用適當的驅動程序連接到數據庫
String dbUrl =  "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=GB2312";
String dbUser="root";
String dbPwd="1234";
//建立數據庫連接
con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
//創建一個JDBC聲明
stmt = con.createStatement();
//增加新記錄
stmt.executeUpdate("INSERT INTO books (id,name,title,price) VALUES (’999’,’Tom’,’Tomcat Bible’,44.5)");
//查詢記錄
rs = stmt.executeQuery("SELECT id,name,title,price from books");
//輸出查詢結果
out.println("<table border=1 width=400>");
while (rs.next())
{
String col1 = rs.getString(1);
String col2 = rs.getString(2);
String col3 = rs.getString(3);
float col4 = rs.getFloat(4);
//convert character encoding
col1=new String(col1.getBytes("ISO-8859-1"),"GB2312");
col2=new String(col2.getBytes("ISO-8859-1"),"GB2312");
col3=new String(col3.getBytes("ISO-8859-1"),"GB2312");
//打印所顯示的數據
out.println("<tr><td>"+col1+"</td><td>"+col2+"</td><td>"+col3+"</td><td>"+col4+"</td></tr>");
}
out.println("</table>");
//刪除新增加的記錄
stmt.executeUpdate("DELETE FROM books WHERE id=’999’");
//關閉數據庫連結
rs.close();
stmt.close();
con.close();
}
//捕獲錯誤信息
catch (Exception e) {out.println(e.getMessage());}
%>
</body>
</html>

對了,關鍵的地方就在于紅色的代碼部分。第一個紅色部分用來在連接

數據庫的URL時就指定好字符編碼

為了保險起見,我們在往網頁上輸出時,即第二部分紅色代碼部分。

這個主要是當我們知道JDBC使用的字符編碼時,我們可以把數據庫中的字符提取出來的時候強制轉換為我們想要的比如GB2312

OK這樣就可以確保我們解決中文字符的輸出問題了!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女av一区二区三区| 日韩av影视在线| 亚洲精品国产免费| 久久中国妇女中文字幕| 国产精品视频99| 亚洲视频综合网| 中文字幕亚洲欧美在线| 欧美日韩亚洲91| 久久成人人人人精品欧| 国产欧美日韩中文字幕| 欧美激情中文网| 26uuu日韩精品一区二区| 国产精品人人做人人爽| 欧美亚洲第一区| 亚洲成人激情图| 日韩在线高清视频| 久久天天躁日日躁| 一区二区亚洲欧洲国产日韩| 国产精品久久网| 欧美激情极品视频| 日本精品免费一区二区三区| 一区二区三区在线播放欧美| 日韩在线视频观看| 国内精品小视频在线观看| 夜夜躁日日躁狠狠久久88av| 亚洲国产精品大全| 在线亚洲欧美视频| 欧美激情在线播放| 久久99久久久久久久噜噜| 51久久精品夜色国产麻豆| 97福利一区二区| 国产美女被下药99| 粉嫩老牛aⅴ一区二区三区| 亚洲国产精久久久久久| 夜夜嗨av色综合久久久综合网| 日韩视频免费看| 国产精品亚发布| 国产综合香蕉五月婷在线| 国产精品久久久久久搜索| 日韩一中文字幕| 一本一道久久a久久精品逆3p| 欧美日韩国产精品一区二区三区四区| 久久精品国产99国产精品澳门| 亚洲欧美成人在线| 亚洲最大的av网站| 成人免费大片黄在线播放| 日韩av中文在线| 国产午夜精品麻豆| 欧美极品在线播放| 亚洲无线码在线一区观看| 91性高湖久久久久久久久_久久99| 欧美成人午夜剧场免费观看| 国产日产久久高清欧美一区| 国内精品视频一区| 日韩第一页在线| 国产mv久久久| 热久久这里只有| 亚洲美女www午夜| 亚洲欧美制服综合另类| 疯狂做受xxxx欧美肥白少妇| 亚洲欧美日韩综合| 91po在线观看91精品国产性色| 久久久久久久久国产精品| 国产精品久久99久久| 午夜精品久久久久久久99热| 久久久亚洲欧洲日产国码aⅴ| 国产美女被下药99| 欧美激情一区二区三级高清视频| 久久精品国产91精品亚洲| 欧美在线视频网站| 成人免费网视频| 成人国产在线激情| 国产视频精品久久久| 视频一区视频二区国产精品| 最近日韩中文字幕中文| 久久久伊人欧美| 热久久99这里有精品| 九九精品视频在线观看| 九九久久综合网站| 在线视频日本亚洲性| 亚洲第一免费网站| 国产精品精品一区二区三区午夜版| 中文字幕亚洲综合久久| 亚洲视频777| 国产精品视频导航| 狠狠爱在线视频一区| 久久久久久久影视| 国产精品成久久久久三级| 亚洲国产小视频在线观看| 一区二区亚洲欧洲国产日韩| 亚洲男人天堂九九视频| 2021国产精品视频| 久久亚洲精品中文字幕冲田杏梨| 92版电视剧仙鹤神针在线观看| 日韩一区二区福利| 一本色道久久综合狠狠躁篇的优点| 亚洲欧美日韩在线高清直播| 992tv在线成人免费观看| 最新的欧美黄色| 国产精品日韩久久久久| 国产免费一区二区三区在线能观看| 精品一区二区亚洲| 欧美电影院免费观看| 国产婷婷色综合av蜜臀av| 亚洲精品视频免费在线观看| 亚洲美女精品久久| 亚洲第一免费播放区| 精品美女久久久久久免费| 国产精品精品一区二区三区午夜版| 亚洲天堂网在线观看| 久久综合色88| 成人精品久久av网站| 亚洲色图第一页| 91在线看www| 大伊人狠狠躁夜夜躁av一区| 亚洲欧美日韩第一区| 亚洲在线www| 久久综合电影一区| 日韩av一区在线观看| 久久精品一偷一偷国产| 国产精品三级久久久久久电影| 一本色道久久综合狠狠躁篇的优点| 久久夜精品va视频免费观看| 中文字幕亚洲国产| 国产精品福利久久久| 精品久久久久久久久久| 国产精品久久久久福利| 国产精品日本精品| 欧美日韩国产成人在线观看| 色诱女教师一区二区三区| 欧美一级免费看| 成人综合国产精品| 国产欧美久久久久久| 欧美色道久久88综合亚洲精品| 国产成人久久精品| 国产在线日韩在线| 在线色欧美三级视频| 高清欧美电影在线| 在线视频免费一区二区| 中文字幕久久久av一区| 国产亚洲精品久久久优势| 久久久久久九九九| 亚洲国产中文字幕在线观看| 亚洲天堂视频在线观看| 奇米一区二区三区四区久久| 精品美女国产在线| 久久久久久久一区二区| 国产精品久久一| 亚洲精品免费网站| 亚洲精品网址在线观看| 国产精品中文字幕在线观看| 欧美激情精品久久久久久大尺度| 久久久久久亚洲精品中文字幕| 亚洲美女动态图120秒| 欧美成人精品在线播放| 久久国产精品影视| 91九色精品视频| 国产一区红桃视频| 久久精品人人爽| 欧美色videos| 久久精品视频一| 久久久www成人免费精品张筱雨| 久久久成人av| 在线成人一区二区|