導航:首頁 > 編程語言 > php定義編碼

php定義編碼

發布時間:2024-02-28 00:24:02

1. 如何用php設置utf-8編碼

在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。

2. php 一般設默認編碼是什麼

也可以給每個文件設置默認編碼,但是比較麻煩,不建議這樣做。建議直接找到配置文件,然後將編碼格式設置成自己需要的類型即可。

3. PHP中文編碼~~

一、頁面編碼

1. 使用 <META http-equiv="content-type" content="text/html; charset=xxx"> 標簽設置頁面編碼

這個標簽的作用是聲明客戶端的瀏覽器用什麼字元集編碼顯示該頁面,xxx可以為GB2312,GBK,UTF-8(和MySQL不同,MySQL是 UTF8)等等。因此,大部分頁面可以採用這種方式來告訴瀏覽器顯示這個頁面的時候採用什麼編碼,這樣才不會造成編碼錯誤而產生亂碼。但是有的時候我們會發現有了這句還是不行,不管xxx是哪一種,瀏覽器採用的始終都是一種編碼,這個情況我後面會談到。

請注意,<meta>是屬於html信息的,僅僅是一個聲明,它起作用表明伺服器已經把HTML信息傳到了瀏覽器。

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

這個函數header()的作用是把括弧裡面的信息發到http標頭。

如果括弧裡面的內容為文中所說那樣,那作用和<META>標簽基本相同,大家對照第一個看發現字元都差不多的。但是不同的是如果有這段函數,瀏覽器就會永遠採用你所要求的xxx編碼,絕對不會不聽話,因此這個函數是很有用的。為什麼會這樣呢?那就得說說HTTPS標頭和HTML信息的差別了:

https標頭是伺服器以HTTP協議傳送HTML信息到瀏覽器前所送出的字串。

因為meta標簽是屬於html信息的,所以header()發送的內容先到達瀏覽器,通俗點就是header()的優先順序高於meta(不知道可不可以這樣講)。加入一個php頁面既有header("content-type:text/html; charset=xxx"),又有<META http-equiv="content-type" content="text/html; charset=xxx">,瀏覽器就只認前者http標頭而不認meta了。當然這個函數只能在php頁面內使用。

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

3. AddDefaultCharset

Apache 根目錄的 conf 文件夾里,有整個Apache的配置文檔httpd.conf。

用文本編輯器打開httpd.conf,第708行(不同版本可能不同)有AddDefaultCharset xxx,xxx為編碼名稱。這行代碼的意思:設置整個伺服器內的網頁文件https標頭里的字元集為你默認的xxx字元集。有這行,就相當於給每個文件都加了一行header("content-type:text/html; charset=xxx")。這下就明白為什麼明明meta設置了是utf-8,可瀏覽器始終採用gb2312的原因。

如果網頁里有header("content-type:text/html; charset=xxx"),就把默認的字元集改為你設置的字元集,所以這個函數永遠有用。如果把AddDefaultCharset xxx前面加個「#」,注釋掉這句,而且頁面里不含header("content-type…"),那這個時候就輪到meta標簽起作用了。

4. default_charset

在 php.ini 文件中可以定義 php 的默認語言: default_charset = "xxx",xxx為編碼名稱。這行代碼的意思是設置所有 php 的輸出頁面編碼為 xxx。

總結:

以上 4 種編碼設置方法的優先順序如下:

header("content-type:text/html; charset=xxx")
default_charset xxx
AddDefaultCharset xxx
<META http-equiv="content-type" content="text/html; charset=xxx">
如果你是web程序員,給你的每個頁面都加個header("content-type:text/html; charset=xxx"),保證它在任何伺服器都能正確顯示,可移植性強。

至於那句AddDefaultCharset xxx,要不要注釋就仁者見仁了。反正我是注釋掉了,不過我寫頁子也要寫header(),便於放到伺服器上能正常顯示。

二、資料庫編碼

PHP 程序在查詢資料庫之前,首先執行 mysql_query(「SET NAMES xxxx」);其中 xxxx 是你網頁的編碼(charset=xxxx),如果網頁中 charset=utf8,則 xxxx=utf8,如果網頁中 charset=gb2312,則xxxx=gb2312,幾乎所有WEB程序,都有一段連接資料庫的公共代碼,放在一個文件里,在這文件里,加入mysql_query(「set names」)就可以了。

SET NAMES 顯示客戶端發送的 SQL 語句中使用什麼字元集。因此,SET NAMES 'utf-8'語句告訴伺服器「將來從這個客戶端傳來的信息採用字元集utf-8」。它還為伺服器發送回客戶端的結果指定了字元集。(例如,如果你使用一個SELECT語句,它表示列值使用了什麼字元集。)

三、中文文件名

默認情況下,文件名為中文時不能訪問。要使中文文件名能正常訪問,需進行如下設置:

在ie中選擇 工具 -> internet選項 -> 高級 -> 取消「總是以UTF-8發送URL」。

4. Notepad++開發PHP如何設置正確的UTF-8編碼

一、首先需要了解和明確的有關編碼的知識:

PHP
編寫過程中,一般需要注意的是三種編碼:
1、網頁字元編碼
2、文件字元編碼
3、資料庫字元編碼
只有上面3種編碼的格式都一致的情況下,才會盡可能的避免亂碼的出現。
二、如何使用Notepad++軟體設置UTF-8編碼:
用Notepad++
軟體打開指定的
php
文檔後,在「格式」菜單下找到「以UTF-8格式編碼"
以xxx編碼的意思是不強制轉換文件的編碼,僅僅以某種編碼來查看,它不會對文件進行修改,這對我們打開某個文件發現都是亂碼時非常實用。
轉為xxx編碼的意思就是將文件內容強制轉換為某種編碼,這對於我們本來看到的就不是亂碼但我們需要調整右下角的文件編碼時非常好用。

閱讀全文

與php定義編碼相關的資料

熱點內容
顯示加密服務超時 瀏覽:610
日語口譯pdf 瀏覽:432
外人如何評價身邊的程序員 瀏覽:105
霍夫曼編碼壓縮演算法 瀏覽:122
我想學習單片機 瀏覽:644
陳寶蓮拍過 瀏覽:336
遙調命令的設定命令實現過程 瀏覽:76
演算法中最壞情況都為多少 瀏覽:995
排序演算法圖形化展示 瀏覽:782
看電影免費網站入口 瀏覽:447
加密U盤啟動區和交換區格式化 瀏覽:247
求不需要下載播放器就能看的網站 瀏覽:828
日本重生電影在線 瀏覽:623
女的被一個小孩上了 瀏覽:948
macandroid找不到設備 瀏覽:514
漫威電影不能投屏了怎麼破 瀏覽:308
安卓qq最新版本怎麼解綁手機號 瀏覽:681
經典三極3d版古裝劇 瀏覽:172
phpcurljsonget 瀏覽:913
郝萬山pdf 瀏覽:86