導航:首頁 > 編程語言 > 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定義編碼相關的資料

熱點內容
主管開除女程序員 瀏覽:712
雲伺服器轉售 瀏覽:540
壓縮空氣漏氣量怎樣計算 瀏覽:101
手機app是怎麼跳轉的 瀏覽:664
學編程的重要性 瀏覽:24
程序員去按摩 瀏覽:739
奧迪手機控車app怎麼添加愛車 瀏覽:4
收磚機石獅編程培訓廠家 瀏覽:761
吉里吉里2安卓模擬器怎麼用 瀏覽:818
編譯器將匯編代碼 瀏覽:681
電路板加密錯誤 瀏覽:21
java自動機 瀏覽:363
相機連拍解壓 瀏覽:31
linuxssh服務重啟命令 瀏覽:330
茂名氫氣隔膜壓縮機 瀏覽:47
程序員地鐵寫程序 瀏覽:330
java的switchenum 瀏覽:329
pdf瓷器 瀏覽:905
怎樣用adb命令刷機 瀏覽:962
蘋果手機怎麼買app 瀏覽:303