【发布时间】:2023-02-14 18:49:23
【问题描述】:
我 90% 的网站页面使用 utf8 编码功能来编译 DataTable。
$a[] = array_map('utf8_encode', $item);
在 php 的旧版本 8.0 中,一切都很好,在新版本中,当 $item 的值($item 是一个数组)为 null 时,它会给我一个错误。
什么是有效的替代方案?
【问题讨论】:
-
$item实际上是以 ISO 编码开头的吗?另外,it gives me an error是准确的还是弃用通知?请添加消息。 -
utf8_encode需要一个非 NULL 的字符串。所以准备数组并将所有 NULL 转换为空字符串array_map('strval', $item)或过滤空值array_filter() -
utf8_encode 不检查编码类型,只是假设它是 ISO-8859-1。这会导致错误和错误。有更好的解决方案,例如插件 mbstring。 mb_convert_encoding 让您不仅可以转换,还可以指定要转换的来源和目标。
标签: php encoding deprecated decoding