给出以下代码:
<?php
$mb_name = "湊崎 紗夏";
$tmp_mb_name = iconv('UTF-8', 'UTF-8//IGNORE', $mb_name);
if($tmp_mb_name != $mb_name) {
echo "tmp_mb_name: {$tmp_mb_name}\n";
echo "mb_name: {$mb_name}\n";
exit;
} else {
echo "no problem!\n";
}
我在 3v4l.org 中测试,它输出 no problem!
但是,在 php:7.4-fpm-alpine docker 图像中,它输出以下内容:
tmp_mb_name:
mb_name: 湊崎 紗夏
根据php.net:
如果附加字符串 //IGNORE,则无法在目标字符集中表示的字符将被默默丢弃。
为什么 $mb_name 无法在 php alpine 图像中的 UTF-8 中表示?
德玛西亚99
蝴蝶刀刀
FFIVE
撒科打诨