本文目錄一覽:
- 1、php 一般設默認編碼是什麼
- 2、php頁面的要怎麼設置編碼
- 3、怎樣設置php的編碼格式為utf-8
- 4、如何用php設置utf-8編碼
- 5、如何把php文件編碼更改為utf-8
- 6、php怎麼設置編碼
php 一般設默認編碼是什麼
PHP不支持多位元組編碼,所有字元都被認為是單位元組。
也就是說「中」字在GBK編碼中是兩個位元組,PHP就把它當作2個字元來處理;
在UTF-8中是三個位元組,就當作3個字元來處理。
你在保存PHP源文件時使用了UTF-8編碼,所以就是3了。
不過PHP也提供了處理多位元組字元的擴展,叫做mbstring;
也有用於編碼轉換的擴展,就是大名鼎鼎的iconv。
php頁面的要怎麼設置編碼
要使字元編碼正確顯示出來,需要3個地方的編碼設置是一樣的:
1、頁面編碼
header(“Content-type:text/html;charset=utf-8”);
2、頁面的文件編碼使用 utf8
3、 資料庫里的數據使用 utf8 編碼
怎樣設置php的編碼格式為utf-8
在 PHP 編寫過程中,一般需要注意的是三種編碼:
1、網頁字元編碼
2、文件字元編碼
3、資料庫字元編碼
只有上面3種編碼的格式都一致的情況下,才會儘可能的避免亂碼的出現。
二、如何使用Notepad++軟體設置UTF-8編碼:
用 Notepad++ 軟體打開指定的 php 文檔後,在「格式」菜單下找到「以UTF-8格式編碼”
以xxx編碼的意思是不強制轉換文件的編碼,僅僅以某種編碼來查看,不會對文件進行修改,這對打開某個文件發現都是亂碼時非常實用。
轉為xxx編碼的意思就是將文件內容強制轉換為某種編碼,這對於本來看到的就不是亂碼但需要調整右下角的文件編碼時非常好用。
如何用php設置utf-8編碼
在你的源文件找到meta http-equiv=”content-type” content=”text/html;charset=utf-8″charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。
要輸出UTF8格式時,加上以下語句:
header(」Content-Type: text/html; charset=UTF-8″)
php用UTF-8總結:
php文件本身必須是UTF-8編碼。不像Java會生成class文件,避免這個問題
php要輸出頭:header(」Content-Type: text/html; charset=UTF-8″)
meta標籤無所謂,有header所有瀏覽器就會按header來解析
所有外圍都得用UTF8,包括資料庫、×.js、×.css(CSS影響倒不大)
php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼(基本上的linux都裝了,沒裝的話download、tar、make、make install,很簡單的)
my.ini:
[MySQL(和PHP搭配之最佳組合)]
default-character-set=utf8
[MySQL(和PHP搭配之最佳組合)d]
default-character-set=utf8
default-storage-engine=MyISAM
在[MySQL(和PHP搭配之最佳組合)d]下加入:
default-collation=utf8_bin
init_connect='SET NAMES utf8'
在需要做資料庫操作的php程序前面加上
mb_internal_encoding('utf-8');
create table最後邊加上ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin
phpMyAdmin/config.inc.php
$cfg['DefaultCharset'] = 'utf-8';
$cfg['RecodingEngine'] = 'iconv';
phpAdmin導出數據時
把”二進位區域使用十六進位顯示”的勾去掉
特別鬱悶的:文件系統函數不支持UTF-8!
如何把php文件編碼更改為utf-8
與 php 編碼有關的,有兩處地方:
1、php 文件本身的編碼格式:
根據使用 php 編寫軟體的不同,其操作方法有所區別,比如 phpDesigher 軟體:
2、php 文件內容里,需要設置供瀏覽器進行解析時需要的編碼格式:
在 PHP 文件代碼里,插入
header(“Content-type: text/html; charset=utf-8”);
相當於 html 的
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /
php怎麼設置編碼
header(“Content-type: text/html; charset=utf-8”);
另外你的編輯器編碼也要對應哦
a. 如果欲使用gb2312編碼,那麼php要輸出頭:header(「Content-Type: text/html; charset=gb2312″),靜態頁面添加meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″,所有文件的編碼格式為ANSI,可用記事本打開,另存為選擇編碼為ANSI,覆蓋源文件。
b. 如果欲使用utf-8編碼,那麼php要輸出頭 :header(「Content-Type: text/html; charset=utf-8″),靜態頁面添加meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″,所有文件的編碼格式為utf-8。
最近需要用到iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。 讓我鬱悶了好一會兒,去網上一查資料才知道這是iconv函數的一個bug。iconv在轉換字元”—”到gb2312時會出錯。解決方法很簡單,就是在 需要轉成的編碼後加 “//IGNORE” 也就是iconv函數第二個參數後,如下:
iconv(“UTF-8″,”GB2312//IGNORE”,$data)
ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/248122.html