我应该使用哪个多字节处理库:iconv或mbstring?
经过一些谷歌搜索我没有找到足够的论据来说服我特别使用一个,我无法得到任何基准(我太懒了创建一个:-p).
毕竟这个选择真的不重要吗?
感谢您的任何建议.
给出以下代码:
\n<?php\n$mb_name = "\xe6\xb9\x8a\xe5\xb4\x8e \xe7\xb4\x97\xe5\xa4\x8f";\n$tmp_mb_name = iconv(\'UTF-8\', \'UTF-8//IGNORE\', $mb_name);\nif($tmp_mb_name != $mb_name) {\n echo "tmp_mb_name: {$tmp_mb_name}\\n";\n echo "mb_name: {$mb_name}\\n";\n exit;\n} else {\n echo "no problem!\\n";\n}\nRun Code Online (Sandbox Code Playgroud)\n我在3v4l.org中测试并输出no problem!
然而,在php:7.4-fpm-alpine docker图像中,它输出以下内容:
tmp_mb_name: \nmb_name: \xe6\xb9\x8a\xe5\xb4\x8e \xe7\xb4\x97\xe5\xa4\x8f\n\nRun Code Online (Sandbox Code Playgroud)\n根据php.net:
\n\n\n如果附加字符串 //IGNORE,则无法在目标字符集中表示的字符将被默默丢弃。
\n
为什么无法在 php alpine 图像中$mb_name表示?UTF-8