摘要:多字節(jié)字符串假設(shè)字符串中的每一個(gè)字符都是八位字符,占用一個(gè)字節(jié)的內(nèi)存。如果使用原生的字符串函數(shù)處理這些多字節(jié)字符串,會(huì)得到意外的錯(cuò)誤。字符編碼一定要知道數(shù)據(jù)的字符編碼。擴(kuò)展不僅可以處理字符串,還可以在不同的字符編碼之間轉(zhuǎn)換多字節(jié)字符串。
1).PHP假設(shè)字符串中的每一個(gè)字符都是八位字符,占用一個(gè)字節(jié)的內(nèi)存。但是,你有可能會(huì)遇到多字節(jié)字符串。
2).這里所說的多字節(jié)字符串是指不在傳統(tǒng)的128個(gè)ASCII字符集中的字符。如果使用PHP原生的字符串函數(shù)處理這些多字節(jié)Unicode字符串,會(huì)得到意外的錯(cuò)誤。
3).安裝mbstring擴(kuò)展來處理這些問題。例如使用處理多字節(jié)的字符串函數(shù)mb_strlen()函數(shù)來替代原生的strlen()函數(shù)。
1).一定要知道數(shù)據(jù)的字符編碼。
2).使用UTF-8字符編碼存儲(chǔ)數(shù)據(jù)。
3).使用UTF-8字符編碼輸出數(shù)據(jù)。
4).mbstring擴(kuò)展不僅可以處理Unicode字符串,還可以在不同的字符編碼之間轉(zhuǎn)換多字節(jié)字符串。
1).在php.ini中作如下配置
default_charset = "UTF-8";
2)例如header函數(shù)明確指定字符集,在PHP返回的響應(yīng)中,Content-Type首部默認(rèn)也使用了這個(gè)默認(rèn)值
3).只要PHP已經(jīng)明確返回了輸出,就不能使用header()函數(shù)了
4).建議在HTML文檔的頭部也加入響應(yīng)的meta標(biāo)簽
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/23334.html
不要使用mysql_*系列函數(shù),查詢時(shí)盡量對sql語句進(jìn)行預(yù)處理 PHP官方目前已經(jīng)將此系列函數(shù)標(biāo)記為棄用狀態(tài),添加PHP對mysql的支持,編譯時(shí)使用下面的參數(shù) --enable-mysqlnd --with-pdo-mysql --with-mysqli --with-mysql=mysqlnd mysql_*系列函數(shù)不支持 預(yù)處理語句,事務(wù),存儲(chǔ)過程,異步查詢,多條...
摘要:主要以的或?yàn)槔渌麛?shù)據(jù)庫中基本也有類型并需要提供長度的參數(shù)。以前的版本的最大長度就是,之后是。而之后表示長度的字節(jié)數(shù)會(huì)變成個(gè)。盡管是動(dòng)態(tài)存儲(chǔ)的,但別的數(shù)據(jù)庫引擎不一定是如此。不管其中每一行存儲(chǔ)的數(shù)據(jù)是長還是短。 http://dba.stackexchange.com/questions/76469/mysql-varchar-length-and-... 主要以mysql...
摘要:處理文本的最佳實(shí)踐是三明治要盡早把輸入例如讀取文件時(shí)的字節(jié)序列解碼成字符串。這種三明治中的肉片是程序的業(yè)務(wù)邏輯,在這里只能處理字符串對象。 處理文本的最佳實(shí)踐是Unicode 三明治 要盡早把輸入(例如讀取文件時(shí))的字節(jié)序列解碼成字符串。 這種三明治中的肉片是程序的業(yè)務(wù)邏輯,在這里只能處理字符串對象。 在其他處理過程中,一定不能編碼或解碼。 對輸出來說,則要盡量晚地把字符串編碼成字...
閱讀 2301·2023-04-26 00:01
閱讀 802·2021-10-27 14:13
閱讀 1830·2021-09-02 15:11
閱讀 3387·2019-08-29 12:52
閱讀 535·2019-08-26 12:00
閱讀 2571·2019-08-26 10:57
閱讀 3410·2019-08-26 10:32
閱讀 2851·2019-08-23 18:29