本文目錄一覽:
如何用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 輸出簡單的中文 亂碼問題
解決php中中文亂碼問題方法
php文件本身的編碼與網頁的編碼應匹配
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。保存為utf-8可能會有點麻煩,一般utf-8文件開頭會有BOM,如果使用session就會出問題,可用editplus來保存,在editplus中,工具-參數選擇-文件-UTF-8簽名,選擇總是刪除,再保存就可以去掉BOM信息了。
php本身不是Unicode的,所有substr之類的函數得改成mb_substr(需要裝mbstring擴展);或者用iconv轉碼。
如果你的HTML文件文件出現了亂碼問題,那麼你可以在head標籤裡面加入UTF8編碼(國際化編碼):UTF-8是沒有國家的編碼,也就是獨立於任何一種語言,任何語言都可以使用的。
擴展資料:
解決PHP 輸出簡單的中文 亂碼問題的其他方法:
在php的echo前面加入header(“Content-Type:text/html;charset=gb2312”)
把meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ /中的UTF-8改成gb2312
參考資料:
百度百科-PHP
php如何輸出gb2312編碼對應的漢字?
用chr函數輸出。別聽1-2樓瞎說!他們都沒做過PHP開發。
漢字由於是雙字節,所以要一個字節一個字節的輸出,並且編碼是16進制的,因此需要按下面這樣輸出。
複製下面的代碼運行:
?php
$chars = ‘你好’;
$text = ”;
$codes = array ();
for ($i = 0; $i strlen( $chars ); $i++) {
$c = ord ( substr ( $chars, $i, 1 ) );
$text .= chr ( $c );
$codes [] = $c;
}
echo ( $text );
?
同時,請注意,php對於漢字的ASCII碼根據PHP文件的編碼不同,是不一樣的。要獲取其編碼,使用ord()函數,但是ord函數只返回首個字符的ASCII碼
如果你知道 ASCII碼,也可以通過 pack 函數打包以後作為字符串輸出
原創文章,作者:ZWHS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133567.html