導航:首頁 > 編程語言 > phpstrlen中文

phpstrlen中文

發布時間:2022-07-09 16:50:37

A. php strlen utf8一個中文算3個位元組嗎

utf8是變長編碼, 不一定是3位元組, 可能是2~3, 當然ASCII字元還是1位元組.gbk也是變長編碼, 非ASCII的2位元組, ASCII還是1位元組.這兩個編碼對於非ASCII字元, 都是多位元組的, 並且多位元組字元每個位元組都是>127的, 也就是負數(最高位是1).另外, PHP里的strlen不是依靠判斷字元串結尾的, 因為PHP是腳本語言, 它的字元串和C++的string是一樣的, 將存儲的位元組個數當作字元串長度.另外, PHP里想數數有多少個位元組用strlen, 想數數有多少個字元, 用mb系列函數, 自己去了解一下.還有些需求, 比如字元串匹配查找之類的, gbk是存在雙位元組匹配問題的, 兩個連續漢字的中間2個位元組可能被誤認為其他字元, 所以不能用strstr之類的位元組匹配函數(PHP里是純位元組匹配的, 不關心), 但utf-8是可以的, 它不會有類似的沖突, 另外最好的做法當然還是用mb系列, 安全可靠, 而且還支持猜編碼功能.

B. php strlen的問題

php strlen() 函數返回字元串的長度。

<?php
$str = 'abcdef';
echo strlen($str); // 6
$str = ' ab cd ';
echo strlen($str); // 7
?>

strlen(string)
參數 描述
string 必需。規定要檢查的字元串。

//測試時文件的編碼方式[1]
<?php
$str='中文a字1符';
echo strlen($str).'<br>';//14
echo mb_strlen($str,'utf8').'<br>';//6
echo mb_strlen($str,'gbk').'<br>';//8
echo mb_strlen($str,'gb2312').'<br>';//10
?>

C. PHP判斷是中文還是英文

/*
判斷輸入是否是純數字,英文,漢字等
利用php的mb_strlen和strlen函數就可以輕松得知字元串的構成是全英文、中英混合、全中文。
1: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度一致,則為純英文字元串
2: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,並且strlen返回值和mb_strlen返回值求余後得0 則為全漢字
3: 如果strlen返回的字元長度和mb_strlen以當前編碼計算的長度不一致,並且strlen返回值和mb_strlen返回值求余後不為0 則為中英混合

*/
<?php
$str = "123456abc漢字";
$x = mb_strlen($str, 'gb2312');
$y = strlen($str);
echo "-----------$str----------<br>";
echo "x: ".$x."<br>";
echo "y: ".$y."<br>";

?>

D. php中strlen什麼意思

strlen獲取變數的長度,判斷是否等於2,這里有幾個問題,比如如果$i是中文的話結果可能有問題,使用mb_strlen避免錯誤。

E. php的strlen問題,為什麼相同的一句話,輸出結果不同呢

編碼問題。
UTF8編碼中,中文為3位元組,也就是一個中文字佔用3個位元組。
GB編碼中,中文為2位元組。
你可以數一下(那個冒號應該是英文字元,佔1位元組),31的那個是UTF8編碼,26的是GB編碼

並且中文有5個字,兩個差距正好差了5個位元組。

F. php如何獲取字元串長度,中文、符號、英文字母都算作一個

一般情況下 有漢字的時候 是使用 mb_strlen 這個函數來計算字元長度
這個函數需要開啟 mb_string擴展 默認都是不開啟的

G. php 中的mb_strlen 與 strlen 哪個跟javascript 中的length 相同,如果不同應該怎麼改的相同

額~ 如果是字元串長度的話 mb_strlen 和 Js 的 length 相同。
strlen是字元串長度,但是其實可以說是位元組長度,因為PHP還不支持unicode,所以對於多位元組字元沒法通過strlen正確的取得長度。如果編碼是gbk的話,一個漢字的長度是2, 如果是utf-8的話,一個漢字的長度一般是3,也可能不是,這個按照編碼區間來區分。
如果要出里多位元組字元字元串的話,就要用PHP 的一個 mb 擴展,mb族包含了一系列函數,可以去PHP 手冊看http://www.php.net/manual-lookup.php?pattern=mb&lang=en&scope=quickref

我也表達不是很明白。建議你網路或者google 一下 Unicode、ASCII、UTF-8、GBK~ 都看一下,就很明白了。PHP和JS支持的編碼不一樣,所以很多不一樣。
有問題可以Hi我。

閱讀全文

與phpstrlen中文相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:419
個人所得稅java 瀏覽:759
多餘的伺服器滑道還有什麼用 瀏覽:189
pdf劈開合並 瀏覽:26
不能修改的pdf 瀏覽:750
同城公眾源碼 瀏覽:488
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:78
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491