当我尝试在希伯来词上使用零的strpad()时,它不会添加所需的零值。
例如:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
结果:
שלום00
答案 0 :(得分:2)
str_pad(...)
不是多字节安全的。这意味着,由于您使用了4个2字节字符,因此该函数看到字符串长度为8,因此只有2个零用于填充。
我在PHP手册中发现了这个用户贡献的功能。它是未经测试的,使用风险自负,但在我看来,这正是您所寻找的。 p>
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);
}