2014-12-03 64 views
5

declare() page of the PHP manualPHP聲明編碼

編碼

腳本的編碼可以每個腳本中使用的編碼 指令指定。

示例3聲明腳本的編碼。

<?php 
declare(encoding='ISO-8859-1'); 
// code here 
?> 
  1. 這是什麼做的是什麼呢?腳本的行爲如何受此指令影響?

  2. 這與設置指令mbstring.internal_encoding(在PHP 5.6之前)和default_charset(從PHP 5.6開始)或使用mb_internal_encoding()函數有什麼不同?

(我同時使用PHP 5.3和5.5。目前,我的文件都保存在UTF-8和I服HTML文件時,發送標題Content-Type: text/html; charset=utf-8。)

+1

71次瀏覽和3票,不錯。 – Pacerier 2015-03-13 13:37:47

回答

2

PHP 5.6配備了一個新的默認字符集的指令設置爲UTF-8,在某些情況下,這可能是頁面以latin1作爲元標記提供的問題,您可以通過在腳本中調用ini_set('default_charset','iso-8859-1')來覆蓋此指令。

做這件事穿上你想被編碼在腳本的開頭爲latin1這段代碼每個PHP文件:

例如:的index.php

<?php 
    $server_root = realpath($_SERVER["DOCUMENT_ROOT"]); 
    $config_serv = "$server_root/php/config.php"; 
    include("$config_serv"); 
?> 

然後創建一個文件夾「PHP」 在你的根網站,並把這段代碼到config.php文件:

例如:config.php文件

<?php 
    ########################################################################## 
    # Server Directive - Override default_charset utf-8 to latin1 in php.ini # 
    ########################################################################## 
    @ini_set('default_charset', 'ISO-8859-1'); 
?> 

如果你的php.ini被設置爲latin1(ISO-8859-1)並且你希望提供一個utf-8(unicode)頁面,你可以使用相同的方法強制編碼,但不要使用iso-8859-1,而是使用utf- 8。再看那:

例如:config.php文件

<?php 
    ########################################################################## 
    # Server Directive - Override default_charset latin1 to utf-8 in php.ini # 
    ########################################################################## 
    @ini_set('default_charset', 'UTF-8'); 
?> 

我希望你覺得我的回答有用,我解決我的問題通過這種方式!