search
Homephp教程php手册PHP在GB2312编码下截断字符串

GB2312编码下一个汉字用strlen统计出来的长度为2,那么用substr来截断字符串可能会出现把一个汉字的一半给截掉了,那样就会出现乱码。 首先想到的是按偶数个截断,其实这样思考也是不完善的,因为如果截出来的子串中有一个半角字符,那样还是会出现如上的问

GB2312编码下一个汉字用strlen统计出来的长度为2,那么用substr来截断字符串可能会出现把一个汉字的一半给截掉了,那样就会出现乱码。

首先想到的是按偶数个截断,其实这样思考也是不完善的,因为如果截出来的子串中有一个半角字符,那样还是会出现如上的问题,这个时候地判断子串中包含多少个半角字符,如果是偶数个就按上面的方法解决,如果是奇数个,那就要多截一个或少截一个字符,这样就不会乱码。

其实我首先想到的使用mb_strlen和mb_substr来截,但是我发现我的php文件不是UNICODE编码,那么在这这文件中写的php代码用这两个函数返回的值都是不正确,所以这种方法只在unicode编码可取。

统计半角符号的方法是,从32到127这些ASCII码都是办法,写个函数:

function singleByteCharCount($str) {
	$cnt = 0;
	for ($i = 0; $i  127) {
			continue;
		}
		$cnt++;
	}
	return $cnt;
}

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software