PHP strlen和mb_strlen没有按预期工作
发布时间:2020-12-13 22:31:09 所属栏目:PHP教程 来源:网络整理
导读:当我在字符串上运行时,PHP函数strlen()和mb_strlen()都返回错误的字符数. 这是我正在使用的一段代码…… $foo = mb_strlen($itemDetails['ITEMDESC'],'UTF-8'); echo $foo; 它告诉我这个刺痛 – “4?”直的虹膜剪刀“是45个字符长.它是27. 它还告诉我,这个字
当我在字符串上运行时,PHP函数strlen()和mb_strlen()都返回错误的字符数.
这是我正在使用的一段代码…… $foo = mb_strlen($itemDetails['ITEMDESC'],'UTF-8'); echo $foo; 它告诉我这个刺痛 – “4?”直的虹膜剪刀“是45个字符长.它是27. 它还告诉我,这个字符串 – “婴儿脚跟保暖器,无粘性附件垫,100 / cs”是54,这是正确的. 我假设它有一些字符编码的问题,我认为一切都应该是UTF-8.我已经尝试过为几个不同的字符编码类型提供mb_strlen(),并且它们都返回带有那些非标准字符的字符串的奇数计数. 我不知道为什么会这样. 解决方法
仔细检查您的文本是否真的是UTF-8.那个“?”字符使它看起来像一个经典的字符编码问题.您应该检查从文本原点到上面引用的代码中的点的整个路径,因为有很多地方可以编码.
文本是否源自HTML表单?确保您的< form> element包含accept-charset =“UTF-8”属性. 文本是否一直存储在数据库中?确保数据库存储并以UTF-8返回数据.这意味着检查服务器的全局默认值,数据库或模式的默认值以及表本身. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |