PHP最佳實踐之多位元組字串 字元編碼

2021-09-16 17:07:47 字數 668 閱讀 9251

多位元組字串

1).php假設字串中的每乙個字元都是八位字元,占用乙個位元組的記憶體。但是,你有可能會遇到多位元組字串。

2).這裡所說的多位元組字串是指不在傳統的128個ascii字符集中的字元。如果使用php原生的字串函式處理這些多位元組unicode字串,會得到意外的錯誤。

3).安裝mbstring擴充套件來處理這些問題。例如使用處理多位元組的字串函式mb_strlen()函式來替代原生的strlen()函式。

字元編碼

1).一定要知道資料的字元編碼。

2).使用utf-8字元編碼儲存資料。

3).使用utf-8字元編碼輸出資料。

4).mbstring擴充套件不僅可以處理unicode字串,還可以在不同的字元編碼之間轉換多位元組字串。

輸出utf-8資料

1).在php.ini中作如下配置

default_charset = "utf-8";
2)例如header函式明確指定字符集,在php返回的響應中,content-type首部預設也使用了這個預設值

<?php
3).只要php已經明確返回了輸出,就不能使用header()函式了

4).建議在html文件的頭部也加入響應的meta標籤

多位元組字串轉寬位元組字串(windows)

windows函式 multibytetowidechar提供將多位元組字串轉換為寬位元組字串的功能 參考windows核心程式設計2.8 int multibytetowidechar uint ucodepage,dword dwflags,pcstr pmultibytestr,int cbm...

PHP開發 多位元組字串處理及字元編碼

mbstring 擴充套件 我們所說的多位元組字元指的是不在傳統的 128 個 ascii 字符集中的字元,比如中文字元。而 php 中處理字串的函式預設假設所有字元都是 8 位字元,占用乙個位元組,如果使用這些 php 原生的字串處理函式處理包含多位元組字元的 unicode 字串,會得到意料之外...

多位元組字串與寬字串的轉換

多位元組字串與寬字串的轉換可使用c api者win32 api.c api mbstowcs,wcstombs win32 api multibytetowidechar,widechartomultibyte 下面著重介紹win32 api的用法,c api的用法較為簡單可參照win32 api。...