加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – mb_detect_encoding将ASCII检测为UTF-8?

发布时间:2020-12-13 13:52:55 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试自动将导入的IPTC元数据从图像转换为UTF-8,以便基于 PHP mb_函数存储在数据库中. 目前它看起来像这样: $val = mb_convert_encoding($val,'UTF-8',mb_detect_encoding($val)); 但是,当mb_detect_encoding()提供ASCII字符串(来自192-255的Latin1字
我正在尝试自动将导入的IPTC元数据从图像转换为UTF-8,以便基于 PHP mb_函数存储在数据库中.

目前它看起来像这样:

$val = mb_convert_encoding($val,'UTF-8',mb_detect_encoding($val));

但是,当mb_detect_encoding()提供ASCII字符串(来自192-255的Latin1字段中的特殊字符)时,它会将其检测为UTF-8,因此在以下尝试将所有内容转换为正确的UTF-8时,将删除所有特殊字符.

我尝试通过查找Latin1值来编写自己的方法,如果没有发生,我会继续让mb_detect_encoding决定它是什么.但是当我意识到我不能确定其他编码不会对其他东西使用相同的字节值时,我中途停止了.

那么,有没有办法正确检测ASCII以作为源编码提供给mb_convert_encoding?

指定首先检测ASCII的自定义顺序有效.
mb_detect_encoding($val,'ASCII,UTF-8,ISO-8859-15');

为完整起见,可用编码列表为http://www.php.net/manual/en/mbstring.supported-encodings.php

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读