当我尝试在希伯来语单词上使用零的 str_pad() 时,它不会添加所需数量的零。
例如:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
结果:
שלום00
当我尝试在希伯来语单词上使用零的 str_pad() 时,它不会添加所需数量的零。
例如:
$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);
}