解決各種應用的亂碼問題

2021-07-09 02:30:41 字數 1735 閱讀 8107

1) 使用標籤設定頁面編碼

這個標籤的作用是宣告客戶端的瀏覽器用什麼字符集編碼顯示該頁面,*** 可以為 gb2312、

gbk、utf-8(和 mysql 不同,mysql 是 utf8)等等。因此,大部分頁面可以採用這種方式來告訴瀏覽器

顯示這個頁面的時候採用什麼編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有

了這句還是不行,不管 *** 是哪一種,瀏覽器採用的始終都是一種編碼,這個情況我後面會談到。

請注意, 是屬於 html 資訊的,僅僅是乙個宣告,僅表明伺服器已經把 html 資訊傳到了瀏覽

器。2) header("content-type:text/html; charset=***");

這個函式 header() 的作用是把括號裡面的資訊發到 http 標頭。如果括號裡面的內容為文中所

說那樣,那作用和 標籤基本相同,大家對照第乙個看發現字元都差不多的。但是不同的是如果有這段函

數,瀏覽器就會永遠採用你所要求的 *** 編碼,絕對不會不聽話,因此這個函式是很有用的。為什麼會

這樣呢?那就得說說 http 標頭和 html資訊的差別了:

http 標頭是伺服器以 http 協議傳送 html 資訊到瀏覽器前所送出的字串。而 標籤是屬於 

html 資訊的,所以 header() 傳送的內容先到達瀏覽器,通俗點就是 header() 的優先順序高於 (不知道

可不可以這樣講)。假如乙個php頁面既有header("content-type:text/html; charset=***"),又有,瀏

覽器就只認前者 http 標頭而不認 meta 了。當然這個函式只能在php頁面內使用。

同樣也留有乙個問題,為什麼前者就絕對起作用,而後者有時候就不行呢?這就是接下來要談的

apache 的原因了。

3) adddefaultcharset

apache 根目錄的 conf 資料夾裡,有整個 apache 的配置文件 httpd.conf。

用文字編輯器開啟 httpd.conf,第 708 行(不同版本可能不同)有 adddefaultcharset ***,

***為編碼名稱。這行**的意思:設定整個伺服器內的網頁檔案 http 標頭里的字符集為你預設的 ***

字符集。有這行,就相當於給每個檔案都加了一行 header("content-type:text/html; charset=***")

。這下就明白為什麼明明 設定了是 utf-8,可瀏覽器始終採用 gb2312 的原因。

如果網頁裡有 header("content-type:text/html; charset=***"),就把預設的字符集改為你設

置的字符集,所以這個函式永遠有用。如果把 adddefaultcharset *** 前面加個"#",注釋掉這句,而

且頁面裡不含 header("content-type…"),那這個時候就輪到 meta 標籤起作用了。

下面列出以上的優先順序:

.. header("content-type:text/html; charset=***")

.. adddefaultcharset ***

..4)php.ini 中的 default_charset 配置:

php.ini 中的 default_charset = "gb2312" 定義了php的預設語言字符集。一般推薦注釋掉

此行,讓瀏覽器根據網頁頭中的 charset 來自動選擇語言而非做乙個強制性的規定,這樣就可以在同台

伺服器上提供多種語言的網頁服務。

解決中文亂碼的各種方案

一 servlet輸出亂碼 1.用servlet.getoutstream位元組流輸出中文,假設要輸出的是string str 釣魚島是中國的,無恥才是日本的 1.1 若是本地伺服器與本地客戶端這種就不用說了,直接可以out.write str.getbytes 可以輸出沒有問題。因為伺服器中用st...

各種亂碼問題總結

spring,springmvc,struts,thymeleaf等都可能存在亂碼的問題 解決辦法總結 1 設定tomcat 僅對get有效 2 配置過濾器,如 org.springframework.web.filter.characterencodingfilter springcharacte...

亂碼問題的解決

我們從前台頁面傳遞引數到後台,經常會遇到亂碼問題!例子 page contenttype 測試結果 解決辦法如下 不得不說,亂碼問題是在我們開發中十分常見的問題,也是讓我們程式猿比較頭大的問題!以前亂碼問題通過過濾器解決 而springmvc給我們提供了乙個過濾器 可以在web.xml中配置 修改了...