一、字符串编码为gb2312,一个中文占俩字节

public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度$strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度for($i = $start; $i < $strlen;) {if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字$tmpstr .= substr ( $str, $i, 2 ); // 每次取出两位字符赋给变量$tmpstr,即等于一个汉字$i=$i+2; // 变量自加2} else{$tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给变量$tmpstr$i++;}}return $tmpstr; // 返回字符串}

二、字符串编码为utf-8,一个中文占仨字节

public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度$strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度for($i = $start; $i < $strlen;) {if (ord ( substr ( $str, $i, 1 ) ) > 0xa0) { // 如果字符串中首个字节的ASCII序数值大于0xa0,则表示汉字$tmpstr .= substr ( $str, $i, 3 ); // 每次取出三位字符赋给变量$tmpstr,即等于一个汉字$i=$i+3; // 变量自加3} else{$tmpstr .= substr ( $str, $i, 1 ); // 如果不是汉字,则每次取出一位字符赋给变量$tmpstr$i++;}}return $tmpstr; // 返回字符串}

  

转载于:https://www.cnblogs.com/webStyle/p/3734489.html

PHP中的中文截取乱码问题_gb2312_utf-8相关推荐

  1. Js的Url中传递中文参数乱码的解决

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面 Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url ...

  2. php chr() ord()中文截取乱码问题解决方法

    今天看到chr() ord()中文截取乱码问题这个例子,觉得相当的不错,拿出来和大家分享下,有兴趣的朋友可以去试下,看看怎么样. 代码如下:<?php $lenth = 19; $str = & ...

  3. java邮件附件名称乱码_Javamail 中附件中文名字乱码祥解 (转)

    Javamail 中附件中文名字乱码祥解 (转)[@more@]现在研究JavaMail的人越来越多,现在我就谈谈在javamail中大家都会遇到的附件中文问题,由于sun的java的中文问题,导致当 ...

  4. 取出Cookie中的中文显示乱码解决方法。经验证第三种方法有效。

    取出Cookie中的中文显示乱码解决方法 HttpUtility.UrlEncode(Response.Cookies[ "newcookie "].Values);  HttpU ...

  5. linux minicon乱码,路径中带中文出现乱码问题

    路径中带中文出现乱码问题 來源:互聯網  2016-05-28 09:34:21  評論 路径中带中文出现乱码问题做项目的时候我们可能会遇到需要使用路径传参数的问题,如果参数是数字或者英文,那肯定不会 ...

  6. 解决ubuntu下crossover中qq中文字体乱码问题

    本文适应于ubuntu16.04,crossover16.2.0-1.(如使用qq推荐使用腾讯qq8.9-2,点击下方的安装windows软件,在输入框输入"qq"两字即可看到) ...

  7. vs2012编程中输出中文出现乱码

    关于"vs2012编程中输出中文出现乱码"问题的探究 问题如下: //代码如下// #include<iostream> using namespace std; in ...

  8. linux crossover 乱码,解决ubuntu下crossover中qq中文字体乱码问题

    本文适应于ubuntu16.04,crossover16.2.0-1.(如使用qq推荐使用腾讯qq8.9-2,点击下方的安装windows软件,在输入框输入"qq"两字即可看到) ...

  9. jmeter-察看结果树-响应数据中的中文显示乱码

    jmeter-察看结果树-响应数据中的中文显示乱码 jmeter\bin\jmeter.properties 默认编码为:ISO-8859-1 # The encoding to be used if ...

最新文章

  1. Spring mvc PostgreSQL 插入timestamp和int8
  2. python从入门到精通视频-python从入门到精通视频(大全60集)
  3. 假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料???
  4. javaEE开发问题整理(1)
  5. python语言单行注释符_云计算开发学习笔记:Python3注释
  6. 启动vue项目失败,报错Failed at the node-sass@4.14.1 postinstall script.
  7. 幅度调制(AM调制、DSB(双边带)调制、SSB、VSB)
  8. android模拟器与PC的端口映射(转)
  9. Android源码学习之浅析SystemServer脉络
  10. JDK1.8API文档中文版和英文版下载
  11. android A problem occurred starting process
  12. python开源项目贡献_为开源项目做出第一笔贡献
  13. 计算机专业学生社会实践,计算机专业学生社会实践报告
  14. Java JVM内存模型(运行时数据区域)详解
  15. 计算机图形学中的曲线问题
  16. 目前流行的机器学习算法
  17. HTML写表格记录(二)--如何在HTML中表达“>“,“<“大于号小于号,以及<b>的意思
  18. 深入理解计算机系统笔记_程序的机器级表示_3.9异质的数据结构
  19. 网络安全相关术语基本概述
  20. java毕业设计成品源码网站ssm水果商城系统电商购物项目

热门文章

  1. 二、express中间件
  2. python web开发 JavaScript基础
  3. LeetCode 732. 我的日程安排表 III(差分思想)
  4. LeetCode 1537. 最大得分(切片取出局部最大值)
  5. LeetCode MySQL 1308. 不同性别每日分数总计(累加/变量/窗口函数)
  6. LeetCode 1486. 数组异或操作
  7. LeetCode 819. 最常见的单词
  8. 程序员面试金典 - 面试题 08.10. 颜色填充(BFS/DFS)
  9. LeetCode 914. 卡牌分组(最大公约数)
  10. matlab 中序列求极值的方法,Matlab中求序列的极值