中文字符串截取造成的乱码处理

近日接手一个二开添加翻译插件的任务,加翻译插件前网页显示正常,加插件后部分网页前部显示正常,后部显示乱码,看起来与文本编码不正确差不多。一开始感觉有些无从下手,仔细浏览网页后发现,每次出现乱码前都有个不完整的文字,怀疑是文字截取错误造成了乱码。

打开源码,发现原代码中使用了substr函数来截取字符串。在php中,substr函数是严格按字节数来截取字符串,虽然一个中文字符为3个字节,如果仅以3的倍数来进行截取,字符串中一旦出现字母、数字等单字节字符而没有在截取前进行判断处理,就很容易造成出现截取到半个中文字符的情况。

例如如下代码,

$str=”活泼枫叶6c的头条号”;echo substr($str,0,15);

运行的结果为

活泼枫叶6c

虽然截取的15个字符,因为6c两个字符只占2个字节,打乱了字符串的规律,所以结果会出现半个字符。

说到这里,可能有些小伙伴会想在截取前先对字符串进行一下处理,或者自己写一个函数。其实大可不必这么麻烦,php已经为我们提供了解决方案。

1、按字符数量截取字符串的mb_substr

例如

$str=”活泼枫叶6c的头条号”;echo mb_substr($str,0,7);

运行的结果为

活泼枫叶6c的

需要截取几个字,参数就写几个字,一目了然。

2、按字节截取字符串的mb_strcut

例如

$str=”活泼枫叶6c的头条号”;echo mb_strcut($str,0,15);

运行结果为

活泼枫叶6c

可以看到,虽然mb_strcut也是按字节截取字符串,但它不会截断字符。

在PHP中,substr虽然用得很多,但要对中文字符串进行截取时,应根据需要选择mb_substr或mb_strcut,从而避免出现半个字符乱码的情况。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年7月27日 15:16
下一篇 2022年7月27日 15:16

相关推荐

  • 存储过程语法(sql server存储过程语法)

    今天小编给各位分享存储过程语法的知识,其中也会对sql server存储过程语法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! oracle存储过程基本语法…

    2022年11月26日
  • 世界杯海外直播在哪看(中国女篮世界杯直播)

    最近一段时间最火爆的话题就是世界杯了,大家都想第一时间观看直播比赛,一些海外小伙伴在问世界杯海外直播在哪看?2022年世界杯海外直播免费观看平台有哪些?下面小编为大家带来世界杯海外…

    2022年11月25日
  • 卡塔尔世界杯吉祥物中文叫什么名字(卡塔尔世界杯吉祥物动画)

    2022年卡塔尔世界杯的话题热度超级火爆的,其中本届世界杯中的吉祥物也受到了很多网友们的喜爱,大家也都在准备入手一只。那么,卡塔尔世界杯吉祥物中文叫什么名字?大家称之为“饺子皮”的…

    2022年11月23日
  • 翻译韩文(英文翻译韩文)

    本文主要讲的是翻译韩文,以及和英文翻译韩文相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 韩文用韩文怎么说? 韩文的韩文是한글。 한글 1、含义:韩文 2、用法:…

    2022年11月21日
  • 如何在手机上文字排版(文字排版软件哪个好用)

    经常面对大量图片和文字的编辑和排版,但是找不到又好看又好用的模板,只能自己慢慢去调整,或者就是简单的文字插图片,没新意又不能吸引人,真的太需要一个模板多的图文编辑器了! 我们登录后…

    2022年11月18日
  • pro和max是什么意思(pro是什么意思中文)

    如今手机的后缀越来越多,诸如Pro、Ultra、Note、Mate、SE、mini、Max等等之类的词,众多英文词语的加持下,经常会让人看得晕头转向,不知道它们之间究竟有什么差别?…

    2022年11月18日
  • 金铁霖去世,大衣哥朱之文发长文悼念!

    文/嗯哼哼崩恰恰娱乐 金铁霖去世,大衣哥朱之文发长文悼念! 11月16日,许久没有消息的大衣哥突然又位居热榜,他罕见在自己的社交账号发布了一段文字,长长的文字为的是纪念金铁霖老师对…

    2022年11月17日
  • 视频剪辑app排行榜前十名(视频剪辑软件哪个好)

    是不是有很多童鞋们,想要做日常视频剪辑、Vlog、影视剪辑但找不到好用的视频剪辑软件,被无情劝退?我花了2个小时看了以下全部的回答,给大家吐血整理了以下被推荐次数最多,以及个人使用…

    2022年11月15日
  • 推荐13种邮箱推广的方式(邮箱推广都有哪些方式)

    即使再厉害的市场营销人员也有灵感卡壳的时候,但千万别因此而沮丧,最重要是找到并善于利用一些耳目一新的技巧方法。以下来自多渠道智能化营销服务机构Webpower的营销专家推荐的13个…

    2022年11月14日
  • 怎样进别人的面对面群(微信面对面建群怎么加入)

    微信几乎每个人都在用,随着版本的迭代更新,微信上的功能也越来越多,我也是今天才知道,原来微信右上角+号,一直有隐藏功能。 01^检测真假好友 微信好友成百上千,别人把你删了,也许你…

    2022年11月10日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息