這些函數(shù)的行為受 php.ini 中的設置影響。
名字 | 默認 | 可修改范圍 | 更新日志 |
---|---|---|---|
mbstring.language | "neutral" | PHP_INI_ALL | PHP_INI_PERDIR 位于 PHP <= 5.2.6 |
mbstring.detect_order | NULL | PHP_INI_ALL | |
mbstring.http_input | "pass" | PHP_INI_ALL | |
mbstring.http_output | "pass" | PHP_INI_ALL | |
mbstring.internal_encoding | NULL | PHP_INI_ALL | |
mbstring.script_encoding | NULL | PHP_INI_ALL | 在 PHP 5.4.0. 中移除, 使用 zend.script_encoding 代替。 |
mbstring.substitute_character | NULL | PHP_INI_ALL | |
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP <= 5.2.6 是 PHP_INI_PERDIR。 Deprecated as of PHP 7.2.0; removed as of PHP 8.0.0. |
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Available as of PHP 5.3.0. |
mbstring.strict_detection | "0" | PHP_INI_ALL | 自 PHP 5.1.2 起有效。 |
這是配置指令的簡短說明。
mbstring.language
string
mbstring 使用了國家默認語言設置(NLS)。
注意,該選項自動地定義了 mbstring.internal_encoding
和
mbstring.internal_encoding
,在 php.ini 里應當放置在 mbstring.language
之后。
mbstring.encoding_translation
bool
為傳入的 HTTP 查詢啟用透明字符編碼過濾器,將檢測和轉換輸入的編碼為內部字符編碼(internal character encoding)。
mbstring.internal_encoding
string
本特性已自 PHP 5.6.0 起廢棄。強烈建議不要使用本特性。
定義內部字符的默認編碼。
PHP 5.6 及更新版的用戶應該將此選項留空,并設置
default_charset
作為代替。
mbstring.http_input
string
本特性已自 PHP 5.6.0 起廢棄。強烈建議不要使用本特性。
定義 HTTP 輸入字符的默認編碼。
PHP 5.6 及更新版的用戶應該將此選項留空,并設置
default_charset
作為代替。
mbstring.http_output
string
本特性已自 PHP 5.6.0 起廢棄。強烈建議不要使用本特性。
定義 HTTP 輸出字符的默認編碼。
PHP 5.6 及更新版的用戶應該將此選項留空,并設置
default_charset
作為代替。
mbstring.detect_order
string
定義字符編碼的默認檢測順序。參見 mb_detect_order()。
mbstring.substitute_character
string
為無效編碼的字符定義替代字符。 參見 mb_substitute_character() ,查看支持的值。
mbstring.func_overload
string
本特性自 PHP 7.2.0 起廢棄,并且自 PHP 8.0.0 起被移除。 強烈建議不要使用本特性。
用 mbstring 對應的函數(shù)覆蓋單字節(jié)版本的函數(shù)集。更多信息參見函數(shù)的覆蓋。
該設置僅能通過 php.ini 文件來修改。
mbstring.http_output_conv_mimetypes
string
mbstring.strict_detection
bool
使用嚴格的編碼檢測。
根據(jù) ? HTML4.01 規(guī)范,允許 Web 瀏覽器以頁面不同的字符編碼來提交表單。 參見用 mb_http_input() 來檢測瀏覽器使用的字符編碼。
盡管流行的瀏覽器能夠根據(jù)給出的 HTML 文檔合理猜測正確的編碼,但如果能通過 header() 函數(shù)在 HTTP 的 Content-Type
頭內或 ini 的 default_charset 里設置適當?shù)?charset
參數(shù)則會更佳。
示例 #1 php.ini 設置例子
; 設置默認語言 mbstring.language = Neutral; 設置默認語言 Neutral(UTF-8) (默認的值) mbstring.language = English; 設置默認語言為 English mbstring.language = Japanese; 設置默認語言為 Japanese ;; 設置內部的默認編碼 ;; 注意:請確保這個編碼能被 PHP 所處理 mbstring.internal_encoding = UTF-8 ; 設置內部的默認編碼為 UTF-8 ;; 啟用 HTTP 輸入編碼的轉換 mbstring.encoding_translation = On ;; 設置 HTTP 輸入的默認編碼 ;; 注意:腳本不能修改 http_input 的設置 mbstring.http_input = pass ; 不轉換 mbstring.http_input = auto ; 設置 HTTP 輸入為 auto ; "auto" 會根據(jù) mbstring.language 自動擴展 mbstring.http_input = SJIS ; 設置 HTTP 輸入編碼為 SJIS mbstring.http_input = UTF-8,SJIS,EUC-JP ; 指定順序 ;; 設置 HTTP 輸出的默認編碼 mbstring.http_output = pass ; 不轉換 mbstring.http_output = UTF-8 ; 設置 HTTP 輸出編碼為 UTF-8 ;; 設置字符編碼的默認檢測順序 mbstring.detect_order = auto ; Set detect order to auto mbstring.detect_order = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order ;; 設置默認的替代字符 mbstring.substitute_character = 12307 ; 指定 Unicode 值 mbstring.substitute_character = none ; 不打印字符 mbstring.substitute_character = long ; Long 的例子: U+3000,JIS+7E7E
示例 #2 php.ini 里 EUC-JP
用戶的設置
;; 禁用輸出緩沖 output_buffering = Off ;; 設置 HTTP header 字符編碼 default_charset = EUC-JP ;; 設置默認語言為 Japanese mbstring.language = Japanese ;; 啟用 HTTP 輸入編碼的轉換 mbstring.encoding_translation = On ;; 啟用 HTTP 輸入轉換的編碼為 auto mbstring.http_input = auto ;; 轉換 HTTP 輸出的編碼為 EUC-JP mbstring.http_output = EUC-JP ;; 設置內部編碼為 EUC-JP mbstring.internal_encoding = EUC-JP ;; 不要打印無效的字符 mbstring.substitute_character = none
示例 #3 php.ini 里 SJIS
用戶的設置
;; 啟用輸出緩沖 output_buffering = On ;; 設置 mb_output_handler 來啟用輸出編碼的轉換 output_handler = mb_output_handler ;; 設置 HTTP header 的字符編碼 default_charset = Shift_JIS ;; 設置默認語言為 Japanese mbstring.language = Japanese ;; 設置 http 輸入轉換的編碼為 auto mbstring.http_input = auto ;; 轉換成 SJIS mbstring.http_output = SJIS ;; 設置內部變量為 EUC-JP mbstring.internal_encoding = EUC-JP ;; 不要打印無效的字符 mbstring.substitute_character = none