中文亂碼

      在〈中文亂碼〉中尚無留言

瀏覽網頁時, 中文變成亂碼的原因很多, 不是只有一種因素. 需足步解決

html標頭

在<head>標籤加入如下代碼

 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 </head>

這是最常見的解決方式, 但在Chrome裏沒什麼用處, 在其他的瀏覽器可能有些用處.

網頁檔案編碼

網頁檔案存檔時的編碼方式. 如果是使用 notepad++編輯時, 需注意編碼方式如下圖

html_chinese

請將檔案轉成utf-8(BOM檔首). BOM是 byte-order marks的意思, 會在檔案最前面加入
EF BB BF 這三個標識符, 記錄此檔屬於utf-8

ps.請注意, 到目前這個步驟為止, 還不能使用utf-8 without BOM喔 

Apache設定

更改 apache的 virtual-host.ini (Linux為 sudo vim 000-default.conf),  加入addDefaultCharset utf-8, 如下藍色

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "d:/server/web"
    addDefaultCharset utf-8
</VirtualHost>

加完後記得重新啟動apache. (Linux為 sudo /etc/init.d/apache2 restart)

此項目更改後, 網頁檔案的編碼utf-8 無論有無BOM都可以了. 

php.ini設定

php.ini 也要設定 default_charset=”UTF-8″, 不過預設就是utf-8. 此項若有更改, 一樣要重啟apache

ps : Linux的php.ini路徑在 /etc/php/7.2/apache2/php.ini

總結

講的這麼複雜, 總結二件事
1. apache 設定檔加入 addDefaultCharset utf-8
2. 網頁檔案存成 utf-8

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *