新聞中心
P是一種動態(tài)網(wǎng)頁開發(fā)技術(shù),可以方便地實現(xiàn)網(wǎng)頁與數(shù)據(jù)庫的交互。然而,在使用P寫入中文數(shù)據(jù)到數(shù)據(jù)庫中時,可能會遇到中文亂碼的問題。本文將介紹如何。

創(chuàng)新互聯(lián)建站專注于公主嶺企業(yè)網(wǎng)站建設(shè),成都響應式網(wǎng)站建設(shè),商城網(wǎng)站定制開發(fā)。公主嶺網(wǎng)站建設(shè)公司,為公主嶺等地區(qū)提供建站服務。全流程按需策劃設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務
1. 確定數(shù)據(jù)庫編碼方式
需要確定數(shù)據(jù)庫的編碼方式。常見的數(shù)據(jù)庫編碼方式包括UTF-8、GBK、GB2312等??梢酝ㄟ^在數(shù)據(jù)庫中執(zhí)行“show variables like ‘%character%’;”命令查看當前數(shù)據(jù)庫的編碼方式。
2. 設(shè)置P頁面編碼方式
在P頁面中設(shè)置編碼方式可以防止出現(xiàn)亂碼??梢栽赑頁面的頭部添加以下代碼:
其中,“charset=UTF-8”表示使用UTF-8編碼方式。
3. 設(shè)置數(shù)據(jù)庫連接編碼方式
在P頁面中設(shè)置數(shù)據(jù)庫連接編碼方式也可以防止出現(xiàn)亂碼??梢栽跀?shù)據(jù)庫連接代碼中加入以下代碼:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
其中,“useUnicode=true”表示使用Unicode編碼方式,“characterEncoding=UTF-8”表示使用UTF-8編碼方式。
4. 使用PreparedStatement進行插入操作
在P頁面中插入中文數(shù)據(jù)時,應該使用PreparedStatement進行操作,這樣可以避免SQL注入攻擊。同時,PreparedStatement會自動處理數(shù)據(jù)編碼方式,避免出現(xiàn)亂碼。
以下是一個使用PreparedStatement插入中文數(shù)據(jù)的示例代碼:
<%
String name = request.getParameter(“name”);
String sql = “INSERT INTO user(name) VALUES(?)”;
Connection conn = null;
PreparedStatement pstmt = null;
try{
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8”, “root”, “123456”);
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(pstmt != null){
pstmt.close();
}
if(conn != null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
%>
需要注意的是,當使用PreparedStatement進行插入操作時,需要將中文數(shù)據(jù)轉(zhuǎn)換為UTF-8編碼方式,否則插入的數(shù)據(jù)仍然會出現(xiàn)亂碼。
5. 統(tǒng)一編碼方式
為了避免不同部分的編碼方式不統(tǒng)一導致的亂碼問題,建議統(tǒng)一使用UTF-8編碼方式。
可以通過設(shè)置P頁面、數(shù)據(jù)庫連接、數(shù)據(jù)庫等多個地方來統(tǒng)一編碼方式,避免出現(xiàn)亂碼。
P是一種非常便捷的動態(tài)網(wǎng)頁開發(fā)技術(shù),可以方便地實現(xiàn)網(wǎng)頁與數(shù)據(jù)庫的交互。當使用P寫入中文數(shù)據(jù)到數(shù)據(jù)庫中時,可能會遇到中文亂碼的問題。本文介紹了如何,包括確定數(shù)據(jù)庫編碼方式、設(shè)置P頁面編碼方式、設(shè)置數(shù)據(jù)庫連接編碼方式、使用PreparedStatement進行插入操作、統(tǒng)一編碼方式等。只要按照這些步驟進行操作,就可以有效地避免中文亂碼問題,讓P開發(fā)更加順暢。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務!
請問我的jsp網(wǎng)頁文本框中輸入中文,存到數(shù)據(jù)庫中顯示為亂碼如何解決
如圖在連接數(shù)孫核襲據(jù)則兄庫時氏乎增加上面
漢字亂碼現(xiàn)象有4種類型:
1.文本亂碼:是Windows系統(tǒng)顯示亂碼,如培祥:菜單、桌面、提示框等。這是由于注冊表中有關(guān)字體部分的設(shè)置不當引起的;
2.文檔亂碼:是各種應用程序、游戲本來顯示中文的地方出現(xiàn)亂碼。這種亂碼形成的原因比較復雜,有第1類的亂碼原因,也可能是軟件中用到的中文動態(tài)鏈接庫被英文動態(tài)鏈接庫覆蓋所造成的;
3.文件亂碼:主要是指郵件亂碼;
4.網(wǎng)頁亂碼:是由于港臺的繁體中文大五碼(BIG5)與大陸簡體中文(GB2312)不通用而造成的。
消除配老搏各類亂碼的方法
一 系統(tǒng)亂碼的消除方法
這類亂碼是由于在Windows注冊表中,關(guān)于字體部分配置不正常造成的,即使你用內(nèi)碼翻譯軟件處理也不會消除這類亂碼。那怎么辦呢?請跟我來:
方法一:找一臺與你的含尺Windows版本相同且顯示正常的機器,依下列步驟進行:
1.在正常機器上選擇“開始”→“運行”,在對話框中鍵入“regedit”,打開注冊表編輯器;
2.請你將光標定位到“HKEY_LOCAL_MACHINE\ system\CurrentControlSet\Control\ Fontassoc”,然后選擇“注冊表”→“導出注冊表文件”,再選擇“分支”,導出該分支注冊表信息到文件(如ZT.REG)中;
3.把ZT.REG文件拷貝到你那顯示亂碼的機器上,方法是:在顯示亂碼的機器上運行“regedit”,打開注冊表編輯器,選擇“注冊表”→“導入注冊注冊表”,把ZT.REG文件導入注冊表中即可。
方法二:如果你找不到一臺與你的Windows版本相同且顯示正常的機器,則需要手工恢復字體部分的注冊表
項,其步驟是:
1.首先在顯示亂碼的機器上選擇“開始”→“運行”,在對話框中鍵入“regedit”,打開注冊表編輯器;
2.選擇“HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Fontassoc”,正常情況下,會有Associated DeaultFonts、Associated CharSet兩個文件夾,其正確的內(nèi)容應是:
子目錄內(nèi)容
中文Win98
中文Win98(OEM版)
中文Win2023
Associated CharSet
ANSI(00)=“yes”
GB2312(86)=“yes”
DEN(FF)=“yes”
SYMBOL(02)=“no”
ANSI(00)=“yes”
GB2312(86)=“yes”
OEM(FF)=“yes”
SYMBOL(02)=“no”
ANSI(00)=“yes”
OEM(FF)=“yes”
SYMBOL(02)=“no”
Associated DefaultFonts
AssocSystemFont=“simsun.ttf”
FontPackageDecorative=“宋體”
FontPackageDontcare=“宋體”
FontPackageModern=“宋體”
FontPackageRoman=“宋體”
FontPackageScript=“宋體”
FontPackageSwiss=“宋體”
或
AssocSystemFont=“simsun.ttf”
FontPackage=“新宋體”
FontPackageDecorative=“新宋體”
FontPackageDontcare=“新宋體”
FontPackageModern=“新宋體”
FontPackageRoman=“新宋體”
FontPackageScript=“新宋體”
FontPackageSwiss=“新宋體”
3.當出現(xiàn)漢字亂碼時,上述兩個文件夾中的內(nèi)容就會不完整,有的沒有Associated CharSet文件夾或其中的內(nèi)容殘缺不全;有的 Associated DefaulFonts下的內(nèi)容殘缺。如果遇到這種情況怎么辦呢?其實你只要打開注冊表編輯器,在 “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fonassoc”下,根據(jù)以上的正確內(nèi)容恢復即可。
二 應用程序、游戲亂碼的消除方法
明明是中文軟件,可顯示界面上卻出現(xiàn)亂碼,這可能是由于注冊表中關(guān)于字體設(shè)置的信息不正確地被改變而造成的,一般是因為軟件的中文鏈接庫被英文鏈接庫覆蓋而引起的,這種現(xiàn)象經(jīng)常發(fā)生在用微軟開發(fā)工具,例如VB、VC開發(fā)的中文軟件上。在這類軟件中,菜單等顯示界面上的漢字都是受一個動態(tài)鏈接庫“.DLL文件”控制,而軟件的這個動態(tài)鏈接庫一般是安裝在Win 98/2023的System目錄下的,如果以后你安裝了某個英文軟件也使用同名的動態(tài)鏈接庫,則英文軟件的動態(tài)鏈接庫就會覆蓋掉你原先的Windows\System下的中文軟件的動態(tài)鏈接庫。這樣,當你運行中文軟件時就會調(diào)用英文的動態(tài)鏈接庫,因此出現(xiàn)亂碼。解決辦法是重新安裝中文軟件,恢復中文動態(tài)鏈接庫即可。
通過Jsp往Oracle數(shù)據(jù)庫中提交數(shù)據(jù)為什么漢字會出現(xiàn)亂碼的問題?
出現(xiàn)亂碼往畝老往是因為某個地方編碼不碰手一致導致的,這需要從如下幾個方面檢查。
1、Jsp頁面的編碼pageEncoding、字符迅吵升編碼charset
2、頁面提交到后臺,后臺的應用程序處理編碼
3、數(shù)據(jù)庫的編碼是否和程序的保持一致
4、jdbc連接數(shù)據(jù)庫的連接字串是否和數(shù)據(jù)庫保持一致
因為使用的編碼沒有統(tǒng)一!
比如數(shù)據(jù)庫使用的UTF-8編碼,而你的P端使用GBK編碼!寫入數(shù)據(jù)庫的中文就會出現(xiàn)亂虧如鄭碼了!
解決辦法就是把編碼統(tǒng)銷頌一就可以了,一般是在P頁面做處理,假如你的數(shù)橡兆據(jù)庫編碼是UTF-8,則P頁面加入下列代碼
關(guān)于jsp 寫 數(shù)據(jù)庫 中文亂碼的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務器選創(chuàng)新互聯(lián),香港虛擬主機被稱為香港虛擬空間/香港網(wǎng)站空間,或者簡稱香港主機/香港空間。香港虛擬主機特點是免備案空間開通就用, 創(chuàng)新互聯(lián)香港主機精選cn2+bgp線路訪問快、穩(wěn)定!
網(wǎng)頁題目:解決P寫入數(shù)據(jù)庫中文亂碼問題(jsp寫數(shù)據(jù)庫中文亂碼)
URL分享:http://m.fisionsoft.com.cn/article/cdpdcse.html


咨詢
建站咨詢
