-2
當我嘗試在希伯來文字上用零填充strpad()時,它不會添加所需數量的零。非英文字符的手寫板
例如:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
結果:
שלום00
當我嘗試在希伯來文字上用零填充strpad()時,它不會添加所需數量的零。非英文字符的手寫板
例如:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
結果:
שלום00
str_pad(...)
並不多字節安全的。這意味着,由於您使用4個2字節字符,因此該函數會發現字符串長度爲8,因此只有2個零將用於填充。
我在PHP手冊中發現了這個用戶提供的函數。它沒有經過測試,使用風險自負,但在我看來,這就是您要找的。
function mb_str_pad ($input, $pad_length, $pad_string, $pad_style, $encoding="UTF-8") {
return str_pad($input,
strlen($input)-mb_strlen($input,$encoding)+$pad_length,
$pad_string, $pad_style);
}
謝謝你多數民衆贊成!!!!!!!!!! – Shani
這些都是多字節字符采取更多的空間比你認爲他們做 –
多字節字符串無法可靠地使用單字節功能。可能重複的[PHP,str \ _pad unicode問題](http://stackoverflow.com/questions/14773072/php-str-pad-unicode-issue) –