1. 程式人生 > >Web開發中文亂碼問題

Web開發中文亂碼問題

Web開發過程中,中文亂碼產生的根源在於Web元件之間、或Web元件與瀏覽器、與資料庫所使用的字符集標準不統一。

一些常見編碼:

GBK是GB2312的擴充套件。

Unicode又稱作萬國碼或統一碼,是由國際組織制定的一種可以容納世界上幾乎所有的文字和符號的字元編碼方案,Java的內部的編碼方式就是Unicode。

UTF-8是Unicode字符集的一種變長字元編碼,用1-6個位元組編碼每一個Unicode字元,可以同時顯示多國語言。

解決方案:

1、對以GET方式提交表單的處理

當以GET方式向Web伺服器提交包含中文的資料,資料將附加在URL地址請求字串中傳送至伺服器,這時伺服器呼叫客戶端指定的頁面處理程式(JSP檔案或Servlet),來讀取客戶端頁面中的資料,則在頁面處理程式中可以使用以下語句做編碼變換,從而解決亂碼問題。語句如下(tomcat伺服器預設使用ISO-8859-1編碼,也可以修改tomcat的配置檔案,修改其預設編碼):

       String username = request.getParameter("username");

       username = new String(username.getBytes("ISO-8859-1"),"GB2312");

程式首先呼叫request物件的getParameter()方法得到字串username的Unicode編碼值,然後把字串username的Unicode編碼值按照ISO-8859-1字符集解碼成位元組序列存放到陣列中,然後再把位元組序列使用GB2312字符集轉成字串再重新賦給username,這樣username就變成了GB2312格式的字串,瀏覽器可以正常顯示了。

    String.getBytes(“ISO-8859-1”)方法是將字串按照ISO-8859-1編碼,並返回一個位元組陣列。

2、對以POST方式提交表單的處理

可以編寫一個過濾器,核心功能就是呼叫request,response進行轉碼:

    request.setCharacterEncoding(“GB2312”);

    response.setContextType(“text/html;charset=GB2312”);

3、資料庫亂碼

    建立連線時指定編碼;

    String url = “jdbc:odbc:datasourcename; useUnicode=true& characterEncoding = GBK”

    或者修改資料庫的編碼。

相關推薦

Web開發中文亂碼問題

Web開發過程中,中文亂碼產生的根源在於Web元件之間、或Web元件與瀏覽器、與資料庫所使用的字符集標準不統一。 一些常見編碼: GBK是GB2312的擴充套件。 Unicode又稱作萬國碼或統一碼

web開發中文亂碼問題總結

首先應該明白jsp頁面兩個與編碼有關的引數的作用:1、pageEncoding:用於指定jsp頁面的編碼格式,pageEncoding指定檔案儲存的格式,由於JVM內部是使用的unicode編碼格式,容器在編譯JSP時會根據pageEncoding指定的編碼格式將檔案內容轉換

web開發中文亂碼問題及解決方案

public class CodingConvert {   public CodingConvert() { // } public String toGb(String uniStr){      String gbStr = "";      if(uniStr == null){    uniStr

web開發中文資料寫入到資料庫亂碼問題

       第一次開發一個小的專案,經驗尚淺,每次測試資料庫時,都是隨便的輸入幾個英文字元就行了的,看看資料庫中是否顯示了,便當做完成任務了。可是由於專案的要求,註冊時可以使用中文,當測試時,到資料庫中檢視居然亂碼。曾經看傳智的老賀講web時,專案的結尾就是來探討和學習這

JAVA開發中文亂碼的幾個解決方案

ont character delete bsp mage gbk net utf-8 type 一:html亂碼或者引入的JS亂碼 1:第一步,text file encoding 首先確保文件的保存格式要UTF-8,如在eclipse中,要在文件上點屬性,確保這裏選擇U

WEB專案中文亂碼的問題

原文 1.解決HTML頁面中的中文問題: 為了使HTML頁面很好地支援中文,就必須在每個HTML頁面的頭部增加如下程式碼: <META http-equiv=Content-Type content="text/html;charset=utf-8"> 2.解決J

zabbix web解決中文亂碼問題

    function getLocales() {         return array(                 'en_GB' => array('name' => _('English (en_GB)'),        'display' => true),    

Java Web專案中文亂碼以及解決辦法

一、中文亂碼說明  在Java Web專案中,由於pageEncoding、contentType和charset等編碼屬性的設定不恰當往往導致顯示中文字元會出現亂碼問題。例如,在Java Web專案

如何解決WEB應用中文亂碼問題

最容易出現亂碼的場景是瀏覽器向伺服器傳送請求的過程,解決的策略就是強制為請求和響應設定編碼格式。 一、POST 方式請求亂碼 1. 在每個 Controller 中單獨處理 request.setCharacterEncoding("UTF-8");response.setCharacter

Tomcat 部署了web專案中文亂碼

本地Tomcat 啟動,網頁端的中文傳到後臺顯示亂碼。查詢前段已經設定了 UTF-8格式, 後臺收到中文的依然是亂碼,原來是Tomcat的配置問題。修改Tomcat的配置檔案server.xml ,新增一個屬性 URIEncoding="UTF-8",如下<Connec

node.js web伺服器 中文亂碼

html 檔案中  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 或者 Content-Type 中 charset=UTF-8   ,注意, UTF-8 必須 是大寫

解決zabbix web中文亂碼問題。

web頁面右上角選擇【profile】 選擇中文支援。 然後點選頁面各分項會發現中文呈現矩形塊亂碼問題。 解決步驟如下: 1.在windows端fonts目錄下拷貝字型到zabbix s

java web 解決中文亂碼問題(全面總結)

  在開發一個完整的web專案時,總是會遇到各種各樣的中文亂碼問題,例如頁面顯示亂碼,表單提交亂碼,資料庫儲存亂碼等          等,雖然目前也能找到各種各樣的解決方案,但是大部分都沒有總結全面。(我也遇到了中文亂碼問題 這是我抄襲來的 如果原作者需要 請通知我刪

Java Web開發總結(三) —— request接收表單提交中文參數亂碼問題

字符串 public servlet 參數 byte[] 解決 操作 get span 1、以POST方式提交表單中文參數的亂碼問題 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"

[web]解決使用WebStorm開發web前端 網頁中文亂碼問題

試了很多種解決網頁顯示中文亂碼問題的方式,最後發現統一更改編碼格式的方法才是正確有效而且一勞永逸的。 具體方法:file ----->  settings 搜尋encoding 在fileencoding下,將IDE Encoding,Project Encoding和下面的De

JAVA Web開發中前後臺數據互動中文亂碼問題解決方法及說明

一 、基於BaseServlet (BaseServlet extends HttpServlet),如果BaseServlet中不設定任何編碼格式,在其子類QueryCustomer  (QueryCustomer extends BaseServlet)中獲取到前端傳回來

java web開發過程中,中文亂碼問題

在解決中文亂碼之前,我們先來看看jsp檔案中charset與pageEncoding的區別:          1.首先,charset是指伺服器傳送給客服端時的內容編碼,charset=utf-8表

web應用開發中文亂碼問題

web應用中中文亂碼問題 在java程式中,出現中文亂碼問題的原因的根源在於java程式和其他儲存媒介互換資料時,兩者編碼方案不同。 常見的中文字元編碼: GB2312-80 GB2312是簡體漢字標準字元編碼方案,是基於區位碼設計的。收錄了常用的簡體

web開發,後臺獲取中文正確,存入mysql資料庫之後亂碼

web開發,本機測試,後臺獲取中文正確,但存入mysql之後亂碼。 對比發現,伺服器上的版本系統是正常的,而我換了win10的電腦,初步判定是本機的編碼問題。 用控制檯觀察輸出,後臺獲取到的中文是正確的,判定是資料庫訪問時的編碼設定問題。 網上查了一下,找到了一個解決辦

終結解決Java Web開發過程中的中文亂碼問題

網上很多關於Java Web開發過程中的中文亂碼問題,我們前端後端都設定為UTF-8的編碼,最後還是會發生亂碼問題。 1、不同瀏覽器造成的問題 2、不同版本Tomcat造成的問題 在Tomcat不同版本對編碼的預設處理於是不一樣的,Tomcat