-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) –