总结了一个UTF-8的编码规则,根据这个编码规则,写一个UTF-8编码的解析程序,以下是PHP的实现,需要的朋友可以参考下
在《学习PHP&MYSQL之——字符编码篇(一)》中介绍了Unicode与UTF-8的转换关系,总结了一个UTF-8的编码规则,根据这个编码规则,写一个UTF-8编码的解析程序,以下是PHP的实现:
复制代码 代码如下:
/*
程序功能,$str是中英文混合的UTF-8编码字符串,
将此字符串根据UTF-8的编码规则正确的解码并显示。
*/
$str = '今天非常Happy,所有决定去KFC吃可乐鸡翅!!!';
/*
$str 是待截取的字符串
$len 是截取的字符数
*/
function utf8sub($str,$len) {
if($len return '';
}
$offset = 0; // 截取高位字节时的偏移量
$chars = 0; // 截取到的字符数
$res = ''; // 存放截取的结果字符串
while($chars // 先取字符串的第一个字节
// 将它转为十进制
// 再转为二进制
$high = ord(substr($str,$offset,1));
// echo '$high='. $high .'
';
if($high == null ){ // 如果取出高位为null,证明已经取到末尾,直接break
break;
}
if(($high>>2) === 0x3F){ // 将高位右移2位,和二进制111111比较,相同则取6个字节
// 截取2个字节
$count = 6;
}else if(($high>>3) === 0x1F){ // 将高位右移2位,和二进制11111比较,相同则取5个字节
// 截取3个字节
$count = 5;
}else if(($high>>4) === 0xF){ // 将高位右移2位,和二进制1111比较,相同则取4个字节
// 截取4个字节
$count = 4;
}else if(($high>>5) === 0x7){ // 将高位右移2位,和二进制111比较,相同则取3个字节
// 截取5个字节
$count = 3;
}else if(($high>>6) === 0x3){ // 将高位右移2位,和二进制11比较,相同则取2个字节
// 截取6个字节
$count = 2;
}else if(($high>>7) === 0x0){ // 将高位右移2位,和二进制0比较,相同则取1个字节
$count = 1;
}
// echo '$count='.$count.'
';
$res .= substr($str,$offset,$count); // 取出一个字符与$res字符串连接
$chars += 1; // 截取到的字符数+1
$offset += $count; // 截取高位偏移量向后移$count字节
}
return $res;
}
echo utf8sub($str,100);

Python编程解析百度地图API文档中的坐标转换功能导读:随着互联网的快速发展,地图定位功能已经成为现代人生活中不可或缺的一部分。而百度地图作为国内最受欢迎的地图服务之一,提供了一系列的API供开发者使用。本文将通过Python编程,解析百度地图API文档中的坐标转换功能,并给出相应的代码示例。一、引言在开发中,我们有时会涉及到坐标的转换问题。百度地图AP

Python解析XML中的特殊字符和转义序列XML(eXtensibleMarkupLanguage)是一种常用的数据交换格式,用于在不同系统之间传输和存储数据。在处理XML文件时,经常会遇到包含特殊字符和转义序列的情况,这可能会导致解析错误或者误解数据。因此,在使用Python解析XML文件时,我们需要了解如何处理这些特殊字符和转义序列。一、特殊字符和

随着PHP8.0的发布,许多新特性都被引入和更新了,其中包括XML解析库。PHP8.0中的XML解析库提供了更快的解析速度和更好的可读性,这对于PHP开发者来说是一个重要的提升。在本文中,我们将探讨PHP8.0中的XML解析库的新特性以及如何使用它。什么是XML解析库?XML解析库是一种软件库,用于解析和处理XML文档。XML是一种用于将数据存储为结构化文档

使用Python解析SOAP消息SOAP(SimpleObjectAccessProtocol)是一种基于XML的远程过程调用(RPC)协议,用于在网络上不同的应用程序之间进行通信。Python提供了许多库和工具来处理SOAP消息,其中最常用的是suds库。suds是Python的一个SOAP客户端库,可以用于解析和生成SOAP消息。它提供了一种简单而

使用Python解析带有命名空间的XML文档XML是一种常用的数据交换格式,能够适应各种应用场景。在处理XML文档时,有时会遇到带有命名空间(namespace)的情况。命名空间可以防止不同XML文档中元素名的冲突,提高了XML的灵活性和可扩展性。本文将介绍如何使用Python解析带有命名空间的XML文档,并给出相应的代码示例。首先,我们需要导入xml.et

PHP爬虫是一种自动化获取网页信息的程序,它可以获取网页代码、抓取数据并存储到本地或数据库中。使用爬虫可以快速获取大量的数据,为后续的数据分析和处理提供巨大的帮助。本文将介绍如何使用PHP实现一个简单的爬虫,以获取网页源码和内容解析。一、获取网页源码在开始之前,我们应该先了解一下HTTP协议和HTML的基本结构。HTTP是HyperText

PHP中的单点登录(SSO)鉴权方法解析引言:随着互联网的发展,用户通常要同时访问多个网站进行各种操作。为了提高用户体验,单点登录(SingleSign-On,简称SSO)应运而生。本文将探讨PHP中的SSO鉴权方法,并提供相应的代码示例。一、什么是单点登录(SSO)?单点登录(SSO)是一种集中化认证的方法,在多个应用系统中,用户只需要登录一次,就能访问

PHP中的HTTPBasic鉴权方法解析及应用HTTPBasic鉴权是一种简单但常用的身份验证方法,它通过在HTTP请求头中添加用户名和密码的Base64编码字符串进行身份验证。本文将介绍HTTPBasic鉴权的原理和使用方法,并提供PHP代码示例供读者参考。一、HTTPBasic鉴权原理HTTPBasic鉴权的原理非常简单,当客户端发送一个请求时


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器