文档章节

汉字按字节截取乱码

小张525
 小张525
发布于 2016/11/21 17:05
字数 163
阅读 1
收藏 0
点赞 0
评论 0
<?php

/**
*  实现原理:
*  1  对汉字按字节进行截取处理, 
*		如果检查到无乱码,说明截取合适
*       如果检查到有乱码,对字符串进行多字节截取, 
**/
$source_string = "中华人民共和国";
define("ALLOW_LENGTH",6);
define('ALLOW_LENGTH_ERROR',7);

$cut_string = substr($source_string,0,ALLOW_LENGTH);
echo $cut_string."&nbsp;&nbsp;";

$check_result = mb_check_encoding($cut_string,'UTF-8');

echo $check_result == true ?  'true' : 'false';
echo "&nbsp;&nbsp;正常截取汉字<br />";

$cut_string_error = substr($source_string,0,ALLOW_LENGTH_ERROR);
echo $cut_string_error."&nbsp;&nbsp;";

$check_result_error = mb_check_encoding($cut_string_error,'UTF-8');

echo $check_result_error == true ? 'true'  : 'false'; 
echo "&nbsp;&nbsp;截取汉字异常<br />";


$crc_cut_string_error = mb_substr($cut_string_error,0,-1,'utf-8');
echo $crc_cut_string_error."&nbsp;&nbsp;";
$check_result_error = mb_check_encoding($cut_string_error,'UTF-8');
echo $check_result_error == true  ? 'true' : 'false';
echo "&nbsp;&nbsp;修正截取结果<br />";

?>

 

© 著作权归作者所有

共有 人打赏支持
小张525
粉丝 6
博文 99
码字总数 32032
作品 0
乌鲁木齐
程序员
php中截取中文字符会出现乱码的问题

php中内置函数substr()可以对指定字符串进行截取,不过,它只对全英文字符串的截取是比较适合的。如果字符串中出现了中文,就有可能导致截取后出现乱码的问题,甚至在一些场景中如json编码的...

码上有春天
2015/04/09
69
0
PHP中substr() mb_substr() mb_struct()的区别和用法及Smar...

PHP substr(),mbsubstr()及mbstrcut的区别和用法及Smarty模板中的truncate调节器浅谈 PHP substr() 函数可以 分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mbsubstr(...

sco
2012/10/07
0
0
C++ fstream 读取汉字的问题

函数目的: 读取指定行数的汉字数据,每行读取不超过一定个数 使用方法: 用fstream中的getline函数来读取每一行('n'之前的最多为x个字节的数据),数据保存在CString中,然后我用CString中...

CodeZero
2013/07/22
1K
3
深入浅出Node.js(六):Buffer那些事儿

作为前端的JSer,是一件非常幸福的事情,因为在字符串上从来没有出现过任何纠结的问题。我们来看看PHP对字符串长度的判断结果: <? phpecho strlen("0123456789"); echo strlen("零一二三四五...

leeldy
2012/10/25
0
0
Java版按字节限制截取字符显示

public class CutString { /** * 判断是否是一个中文汉字 * * @param c * 字符 * @return true表示是中文汉字,false表示是英文字母 * @throws UnsupportedEncodingException * 使用了JAVA不...

hujitao
2012/08/22
0
0
Json字符串转复杂对象

最近的项目中和第三方接口联调,需要调用webservice接口获取json格式字符串,然后转化成对象。 在此记录一下遇到的问题。 1.Stirng字符串问题,第一个字符为空,不是"{" 前期开发过程中,第三...

_小_波_
2016/01/12
116
1
Linux下实现字符串截取方法总结

Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取。具体截取方式如下: a、#截取,可以实现删除左边字符,保留右边字符 从左边第一个开始,删除及之前的所有...

暮回_梓
06/26
0
0
PHP substr()截取字符串时,中文出现乱码的问题解决

在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作。遇到这些需求时,我们经常会想到使用substr()方法来实...

bengozhong
2016/10/10
13
0
php函数substr、mb_substr、mb_strcut截取中文比较

一、函数说明 substr、mbsubstr、mbstrcut这三个函数都用来截取字符串,所不同的是:substr是最简单的截取,无法适应中文;mbsubstr是按字来切分字符串,而mbstrcut是按字节来切分字符串,截...

BearCatYN
2015/04/24
0
0
PHP截取中文字符串无乱码的方法

首先是支持gb2312,gbk,big三种编码。 以下是代码: $len = 19; $text = "怎么将新闻的很长的标题只显示前面一些字,后面用…..来代替?"; echo strlen($text)<=$len ? $text : (substr($te...

BearCatYN
2014/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Git 2.18版本发布:支持Git协议v2,提升性能

Git 2.18版本发布:支持Git协议v2,提升性能Git 2.18版本发布:支持Git协议v2,提升性能 新版本协议的主要驱动力是使 Git 服务端能够对各种 ref(分支与 tag)进行过滤操作。 这就意味着,G...

linux-tao
15分钟前
0
0
python浏览器自动化测试库【2018/7/22-更新】

64位py2.7版本 更新 document_GetResources 枚举页面资源 document_GetresourceText 获取指定url的内容 包括页面图片 下载地址下载地址 密码:upr47x...

开飞色
32分钟前
24
0
关于DCL双重锁失效及解决方案

关于DCL双重锁失效及解决方案 Double Check Lock (DCL)实现单例 DCL 方式实现单例的优点是既能够在需要时才初始化单例,又能够保证线程安全,且单例对象初始化后调用getInstance方法不进行...

DannyCoder
37分钟前
0
0
PowerDesigner 16.5 安装配置

PowerDesigner16.5破解版是一款业内领先且开发人员常用的数据库建模工具,PowerDesigner可以从物理和概念两个层面设计数据库,方便用户制作处清晰直观的数据流程图和结构模型,欢迎有需要的朋...

Gibbons
今天
0
0
mac Homebrew 指令积累

1通用命令 brew install [包名] //安装包 brew list //列举安装的包 brew info [包名] // 显示安装包的详细信息 mysql 相关 #启动mysql 服务 brew service start mysql my...

Kenny100120
今天
0
0
前端Tips: 创建, 发布自己的 Vue UI 组件库

创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等. 只需一行命令, 即可方便的将这些库引入我们当前的项目: n...

ssthouse_hust
今天
1
0
大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
今天
5
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
今天
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
今天
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部