dw php網頁中文亂碼怎麼辦

2022-11-30 10:00:38

dw php網頁中文亂碼的解決辦法:1、將標題編碼設定為UTF8;2、使用Dreamweaver新建php檔案時,通過「<metacharset="utf-8">」申明格式utf-8;3、通過「mysql_query("SET NAMES GBK");」來設定MYSQL連線編碼。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:Windows7系統、dreamweaverCC 2020版、Dell G3電腦。

dw php網頁中文亂碼怎麼辦?

Dreamweaver執行php檔案預覽介面中文亂碼解決方法

做網站開發需要處理多國不同的語言,經常遇到的是中英混排。在使用Dreamweaver新建、執行PHP程式碼時預覽視窗中文有時會顯示亂碼,英文可正常顯示。

出現這種情況的原因主要有:
1、檔案編碼:指的是頁面檔案(.html,.php等)本身是以何種編碼來儲存的。記事本和Dreamweaver 在開啟頁面時候會自動識別檔案編碼因而不太會出問題。而ZendStudio卻不會自動識別編碼,它只會以某種編碼開啟檔案,如果工作時候一不注意,用錯誤編碼開啟檔案,做了修改之後一儲存,亂碼就出現了。

解決的方法:頁面設定,標題/編碼,設定為UTF8


2、頁面申明編碼:
HTML頁面編碼設定
在HTML程式碼HEAD裡面,可以用 來告訴瀏覽器網頁採用了什麼編碼,目前中文網站開發中XXX主要用的是GB2312和UTF-8 兩種編碼。使用Dreamweaver新建php檔案時,需要申明格式utf-8: <metacharset="utf-8">

<metacharset="utf-8">

3、資料庫連線編碼:指的是進行資料庫操作時候以哪種編碼與資料庫傳輸資料,這裡需要注意的是不要與資料庫本身的編碼混淆,比如MySQL內部預設是latin1編碼,也就是說Mysql是以latin1編碼來儲存資料,以其他編碼傳輸給Mysql的資料會被轉換成latin1編碼。

知道了WEB開發中哪些地方涉及到了編碼,也就知道了亂碼產生的原因:上述3項編碼設定不一致,由於各種編碼絕大部分是相容ASCII的,所以英文符號不會出現亂碼,而中文就出現了亂碼。

常見錯誤情況與解決方法:

1、資料庫採用UTF8 編碼,而頁面申明編碼是GB2312 ,這是最常見的產生亂碼的原因。

這時候在PHP指令碼裡面直接SELECT資料出來的就是亂碼,需要在查詢前先使用: mysql_query("SET NAMES GBK"); 來設定MYSQL連線編碼,保證頁面申明編碼與這裡設定的連線編碼一致(GBK是GB2312的擴充套件 )。如果頁面是UTF-8 編碼的話,可以用: mysql_query("SET NAMES UTF8");
PHP編碼設定
在php程式碼時最前面即第一句寫:

<?php
header("Content-type:text/html;charset=utf-8");
?>
登入後複製

修改php.ini檔案

修改「/etc/php5/apache2/php.ini」將

default_charset = "iso-8859-1"
登入後複製

修改為default_charset = "utf-8"

Mysql編碼設定

<?php
mysql_query('SET NAMES UTF8');
?>
登入後複製

注意是UTF8而不是一般用的UTF-8。假如頁面申明的編碼與資料庫內部編碼一致可以不設定連線編碼。

MYSQL的資料輸入輸出比上面講的更復雜一些,MYSQL組態檔my.ini中定義了2個預設編碼,分別是[client]裡的default -character-set和[mysqld] 裡的default-character-set 來分別設定預設時候使用者端連線和資料庫內部所採用的編碼。我們上面指定的編碼其實是MYSQL使用者端連線伺服器時候的命令列引數character_set_client,來告訴MYSQL伺服器接受到的使用者端資料是什麼編碼的,而不是採用預設編碼。

在前面的基礎上,還要在你的資料查詢/修改/增加之前加入資料庫編碼。

2、頁面申明編碼與檔案本身編碼不一致,這種情況很少發生,因為如果編碼不一致美工做頁面時候在瀏覽器看到的就是亂碼了。更多時候是釋出以後修改一些小BUG,以錯誤編碼開啟頁面然後儲存導致的。或者是用某些FTP軟體直接線上修改檔案,比如CuteFTP,由於軟體編碼設定錯誤而導致轉換錯了編碼。

3、租用虛擬主機的時候,上述3項編碼都設定正確了有時還是有亂碼。比方說網頁是GB2312 編碼的,IE等瀏覽器開啟卻總是識別成UTF-8 ,網頁HEAD裡面已經申明是GB2312 了,手動修改瀏覽器編碼為GB2312 後頁面顯示正常。產生原因是伺服器Apache設定了伺服器全域性的預設編碼,在httpd.conf裡面加了AddDefaultCharset UTF-8 。這時候伺服器會首先傳送HTTP頭給瀏覽器,其優先順序比頁面裡申明編碼高,自然瀏覽器就識別錯了。解決辦法有2個,請管理員在組態檔自己的虛機里加上一條AddDefaultCharset GB2312 來覆蓋全域性設定,或者在自己目錄的.htaccess裡設定。

總結: 要解決PHP中文亂碼,最快的解決辦法就是,頁面申明的編碼與資料庫內部編碼一致,如果頁面申請的頁碼與資料庫內部編碼不一致時,就設定連線編碼 ,mysql_query("SET NAMES XXX "); XXX為連線編碼。如mysql_query('SET NAMES UTF8'); [2]

最後,中文成功顯示:

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <title>中文</title>
</head>

<body>

<h1>中文</h1>

<?php
echo "Hello World!";
?>
登入後複製

推薦學習:《》

以上就是dw php網頁中文亂碼怎麼辦的詳細內容,更多請關注TW511.COM其它相關文章!