即使包含在 utf-8 中,我的函数也不会 return 某些字母(vscode、php)

my function doesn't return some letters even though included in utf-8 (vscode, php)

它应该吐出字符串的每个字母,如果它在对象键之一中,但那些奇怪的字符 æø 等根本不显示,我得到的结果如下:ltkai。而不是:lætkaiø。

我正在使用 vscode 和 php(使用 scoop 安装)。

如果有人知道为什么会发生这种情况或如何解决它? 谢谢:)

str_split是按字节操作的,æ等字符在UTF-8中占1个字节以上。

所以如果你 str_split 这些字符,它们基本上会 'split in two' 变成无效字符。在 $letterarr 上 运行 count() 可以看到数组中有 9 个项目,而不是预期的 7 个。

解决方案是使用 PHP 的支持 UTF-8 的字符串函数。只需将 str_split 更改为 mb_str_split 即可修复您的代码示例。