日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP/ Servlet常见的中文乱码原因

發布時間:2025/3/21 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP/ Servlet常见的中文乱码原因 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開發中,我們經常遇到中文亂碼的問題,比方:

&瀏覽器中看到的 Jsp/Servlet 頁面中的漢字成了 ’?’ ??  ?

&瀏覽器中看到的 Servlet 頁面中的漢字都成了亂碼?   

&Jsp/Servlet 頁面無法顯示 GBK 漢字。

&Jsp/Servlet 不能接收 form 提交的漢字。

&JSP/Servlet 數據庫讀寫無法獲得正確的內容。

隱藏在這些問題后面的是各種錯誤的字符轉換和處理。解決類似的字符encoding問題,須要了解 Jsp/Servlet 的執行過程,檢查可能出現故障的各個點。以下是一些自己運用中的一些分享:

1.在jsp中假設指定了<%@ page contentType="text/html; charset=A"%>,那么在該jsp中全部構造的String(不是引用),假設沒有指定編碼,那么這些String的編碼是A的;從request得到的String假設沒有指定request的編碼的話,他是iso-8859-1的;從別的地方得到的String是使用原來初始的編碼的,比方從數據庫得到String,假設數據庫的編碼是B,那么該String的編碼是B而不是A的,也不是系統默認的。此時,假設要輸出的String的編碼不是A,那么,非??赡茱@示亂碼的,所以首先要將String正確轉化為編碼A的String,然后輸出。

?

2. 假設在jsp中沒有指定<%@ page contentType="text/html; charset=A"%>,那么相當于指定了<%@pagecontentType="text/html; charset=ISO-8859-1" %>。

?

3. Servlet中假設運行了語句:response.setContentType("text/html;charset=A");説明將response的字符輸出流編碼設置為A,全部要輸出的String的編碼要轉化為A,否則會得到亂碼。Servlet中從request得到的String的編碼和jsp中一樣的,可是在servlet java文件里構造的String是使用的系統默認的編碼的。在servelt中從外部得到的String是使用原來的編碼的,比方從編碼為B的數據庫得到的數據是編碼為B的,不是A,也不是系統默認的編碼。

綜上所屬,要解決我們常見的中文亂碼問題,須要理解數據交互中Jsp, Servlet, 數據庫中數據的編碼定義,統一編碼格式或做適當轉換。

總結

以上是生活随笔為你收集整理的JSP/ Servlet常见的中文乱码原因的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。