资讯专栏INFORMATION COLUMN

php rtrim() 格式化中文问题

sunny5541 / 551人阅读

摘要:先看以下代码互联网产品我们以为会得到结果互联网产品但实际上获得的是互联网产为什么呢其实这是编码引起的问题这个函数在处理字符时是按照编码来处理先看一下互联网产品的编码互联网产品可以看出中文品的编码是而中文符号的编码是因此在处理时会一并将品

先看以下代码

var_dump(rtrim("互联网产品、", "、"));

我们以为会得到结果 "互联网产品", 但实际上获得的是 ""互联网产��"

为什么呢, 其实这是编码引起的问题.

rtrim() 这个函数在处理字符时是按照ascii编码来处理, 先看一下 "互联网产品、" 的编码:

$str = "互联网产品、";
for ($i = 0; $i < strlen($str); $i++) {
    echo decbin(ord($str[$i])) . PHP_EOL;
}

/* Output
11100100
10111010
10010010
11101000
10000001
10010100
11100111
10111101
10010001
11100100
10111010
10100111
11100101
10010011
10000001
11100011
10000000
10000001
*/

可以看出中文"品"的utf-8编码是 "11100101 10010011 10000001", 而中文符号 "、" 的utf-8编码是 "11100011 10000000 10000001"

因此 rtrim() 在处理时会一并将 "品" 截掉最后一个字节, 剩下 "11100101 10010011", 从而引起乱码的问题.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31414.html

相关文章

  • PHP字符串操作

    摘要:字符串变量被解析。很显然,代表,代表获取字符串的长度对于英文数字字母。你好,截取字符串对于纯英文字符,可以使用对于中文字符,可以使用例如你好,世界查找字符串查找字符串,有内置函数代表,应该代表。当然也有函数用于处理其他编码的字符串。 1. 单引号和双引号 PHP可以在单引号或者双引号中包含字符串。但是单引号和双引号有所区别。 单引号包含的内容会被认为是普通字符串 双引号中允许包含字符...

    taoszu 评论0 收藏0
  • 【渣渣程序员踩过的坑】PHP的hash_hmac签名加密,PHP迷一样的base64_encode

    摘要:如何获取受支持的算法清单,请参见。要进行哈希运算的消息。使用生成信息摘要时所使用的密钥。设置为输出原始二进制数据,设置为输出小写进制字符串。 介绍一下问题的背景: 本人一枚小小PHPer,有一天公司的Java找到我,让我帮忙写一个接口的Demo,心想:‘最喜欢写接口了,来来来来!’,于是Java就带着Java版Demo来了,大概看了一遍,具体涉及以下几点:(不想了解的看最后一部分,就好...

    Rocture 评论0 收藏0
  • 【渣渣程序员踩过的坑】PHP的hash_hmac签名加密,PHP迷一样的base64_encode

    摘要:如何获取受支持的算法清单,请参见。要进行哈希运算的消息。使用生成信息摘要时所使用的密钥。设置为输出原始二进制数据,设置为输出小写进制字符串。 介绍一下问题的背景: 本人一枚小小PHPer,有一天公司的Java找到我,让我帮忙写一个接口的Demo,心想:‘最喜欢写接口了,来来来来!’,于是Java就带着Java版Demo来了,大概看了一遍,具体涉及以下几点:(不想了解的看最后一部分,就好...

    henry14 评论0 收藏0
  • 【日常手记】之Laravel5.3

    摘要:个人网站最近刚写了一个手机在线播放的电影站使用日常手记更新使用的的查询作用域的本地作用域去自定义可复用的约束集合,方便链式调用什么是本地查询作用域本地作用域允许我们定义通用的约束集合以便在应用中复用。 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站:...

    kidsamong 评论0 收藏0
  • [PHP源码阅读]trim、rtrim、ltrim函数

    摘要:系列函数是用于去除字符串中首尾的空格或其他字符。此处要注意,左右两边是一对合法的范围值,如果传递的是非法的值会报错。本文主要对函数进行分析,和函数跟的类似。更多源码文章源码阅读函数性能为王从源码剖析和源码阅读和函数源码阅读和函数 trim系列函数是用于去除字符串中首尾的空格或其他字符。ltrim函数只去除掉字符串首部的字符,rtrim函数只去除字符串尾部的字符。 我在github有对P...

    时飞 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<