首頁 >後端開發 >PHP問題 >php設定字串編碼格式

php設定字串編碼格式

藏色散人
藏色散人原創
2020-08-13 09:45:334005瀏覽

php設定字串編碼格式的方法就是在程式碼的開始處新增一行程式碼為「header("Content-Type: text/html;charset=utf-8");」即可。

php設定字串編碼格式

推薦:《PHP影片教學

php 設定字元編碼為utf-8

在程式碼開始出加入一行:

header("Content-Type: text/html;charset=utf-8");

相關介紹:

PHP 字串的本質

引用PHP 文件的解釋:

PHP 中的string 的實作方式是一個由位元組組成的陣列再加上一個整數指明緩衝區長度。並無如何將位元組轉換成字元的訊息,由程式設計師來決定。字串由什麼值構成沒有限制,包括值為 0 的位元組可以出現在字串的任何位置。

PHP並不特別指明字串的編碼,那字串到底是怎麼編碼的呢,這取決於程式設計師。字串會依照 PHP 檔案的編碼來對字串進行編碼。例如你的檔案編碼是 GBK,那你程式碼內容都是 GBK 的。

補充二進位安全這個概念,其值為0 (NULL)的位元組可以處於字串任何位置,而PHP 的部分非二進位函數底層是呼叫的C 函數,會把NULL 後面的字元忽略。

只要 PHP 的檔案編碼是能相容 ASCII 的,那麼字串運算就可以很好的被處理。但是字串操作本質上還是Native 的(不管檔案編碼是什麼),所以在使用的時候需要注意:

某些函數假定字串是以單字節編碼的,但並不需要將位元組解釋為特定的字元。如 sbustr() 函數。

很多函數是需要顯示的傳遞編碼參數,不然會從 PHP.INI 檔案中取得預設值,例如 htmlentities() 函數。

還有一些函數和本地區域有關,這些函數也只能是單字節操作的。

一般情況下,雖然PHP 內部不支援Unicode 字符,但支援UTF-8 編碼,絕大部分情況下不會有什麼問題,但是下列的情況可能就處理不了了:

非UTF-8 編碼字串如何進行轉換

一個UTF-8 編碼的網頁,但是使用者在提交表單的時候,可能使用GBK 的編碼(不遵守meta tag)

#一個UTF-8 編碼的PHP 文件,使用strlen("中國") 傳回的是6,而不是實際的字元數(2)

那麼如何解決該問題呢? PHP 提供了 mbstring 擴充功能 !

以上是php設定字串編碼格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn