【问题标题】:PHP utf8_en/decode deprecated, what can i use?PHP utf8_en/decode 已弃用,我可以使用什么?
【发布时间】: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


【解决方案1】:
【解决方案2】:

我只是在 array_map('utf8_encode', $item) 之前这样做:

foreach(array_keys($item) as $key)
    $item[$key] = utf8_encode($item[$key] ?? '');

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2020-07-16
    相关资源
    最近更新 更多