iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP如何使用mb_string处理windows中文字符
  • 301
分享到

PHP如何使用mb_string处理windows中文字符

2023-06-15 05:06:23 301人浏览 八月长安
摘要

这篇文章给大家分享的是有关PHP如何使用mb_string处理windows中文字符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我

这篇文章给大家分享的是有关PHP如何使用mb_string处理windows中文字符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只考虑怎么把编码转变成一样的)所以导致我写的UTF-8编码的正则模式字符串中的中文在gbk编码的文件中并不能正确匹配。

一开始,我并没有什么办法,试过把php脚本文件的编码也改成GBK,也可以用,但是想到这种方法太low了,所以找一找PHP中有没有函数可以满足我的需求。

这时,我想到了以前在处理windows中的文件名时用的函数iconv(),其函数原型如下:

stringiconv(string$in_charset,string$out_charset,string$str)

PerfORMsacharactersetconversiononthestringstrfromin_charsettoout_charset.

我们常使用:

$out_charset='utf-8';$fileName=iconv($fileName,$out_charset,'gbk');

来处理文件名,将文件名改从gbk改为UTF-8而内容不变。

手册翻译附加:

  • 如果你在输出字符串$out_charset后面添加//TRANSLIT即$out_charset='utf-8//TRANSLIT',在遇到不能转换为UTF-8的字符时,程序会自动替换为一个相似字符的UTF-8字符;

  • 如果你在输出字符串$out_charset后面添加//IGNORE即$out_charset='utf-8//IGNORE',在遇到不能转换为UTF-8的字符时,程序会自动跳过这个字符。

  • 如果你什么都没加,就在遇到不能替换成UTF-8的字符时,替换会被中断。

但是,我在用这个函数处理时,结果却是这样:

PHP如何使用mb_string处理windows中文字符

意思是iconv()函数能处理的最大字符数只有64,一般的文件名大小,而我的文件内容很显然不止64个字符。

没有办法,我只好再次各种翻找别的函数。

直到我发现了mb_string函数库,这个函数库一般都在PHP环境里集成,我们可以在phpinfo()里找到它。

PHP如何使用mb_string处理windows中文字符

mb_string函数里有一个mb_convert_encoding()函数,可以将一个字符串的编码改变,其函数原型如下:

stringmb_convert_encoding(string$str,string$to_encoding[,mixed$from_encoding])

ConvertsthecharacterencodinGofstringstrtoto_encodingfromoptionallyfrom_encoding.

基原型跟iconv()函数差不多,只是它没有对输出函数的后缀修饰,它也没有对字符串长度的明确限制。

而且我们看到$from_encoding是可选的,它可以自动识别源编码。

因为找不到一个确切的无法转码的字符,也不知道它遇到无法转码的字符会怎么处理。

通过mb_convert_encoding()函数,将整个文件处理了一下,于是,问题顺利解决。

最后介绍一下mb_string函数库,它全名叫MultibyteString,它的很多方法都扩展自PHP自身的string函数库,函数名在原函数的前面加了"mb_",这些函数除了拥有原函数的作用外,还在可选参数的最后加入了一个$encoding的可选参数,这个参数可以规定函数以什么样的编码方式来处理字符串。

例如strpos()函数,找到一个字符串在另一个字符串中的位置。

strpos("欢迎来访问","问",0)返回的结果是12,因为脚本是UTF-8编码,而将字符串转为UTF-8编码后,每个中文字符会占用3个字节。

而在mb_strpos()函数中,mb_strpos("欢迎来访问","问",0,'utf-8')则会返回4,它会将字符串当作已经转UTF-8的状态执行。

而mb_strpos("欢迎来访问","问",0,'gbk')会返回6

感谢各位的阅读!关于“PHP如何使用mb_string处理windows中文字符”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: PHP如何使用mb_string处理windows中文字符

本文链接: https://www.lsjlt.com/news/278110.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP如何使用mb_string处理windows中文字符
    这篇文章给大家分享的是有关PHP如何使用mb_string处理windows中文字符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我...
    99+
    2023-06-15
  • 详解PHP用mb_string处理windows中文字符
    我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只考虑怎么把编码转变成一样...
    99+
    2022-11-12
  • python中如何处理文本字符
    这篇文章给大家分享的是有关python中如何处理文本字符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。完整代码:strings = "我,是‘C|S;D|N!的:程【序】员#M,r&...
    99+
    2023-06-14
  • php如何处理非法字符串
    在php中使用str_replace()函数对非法字符串进行处理,具体方法如下:str_replace()函数作用:php中str_replace()函数的作用是用于替换字符串中的字符。str_replace()函数语法:str_repla...
    99+
    2022-10-04
  • PHP字符串mbstring处理中文字符串的具体方法是什么
    这篇文章给大家介绍PHP字符串mbstring处理中文字符串的具体方法是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。大家通过对PHP的学习,可以运用这一高级语言创建一个性能较高的网站。对于初学者来说,对于PHP字...
    99+
    2023-06-17
  • Python中如何使用中文字符
    这期内容当中小编将会给大家带来有关Python中如何使用中文字符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python中文字符相关操作代码示例:#!/usr/bin/python  ...
    99+
    2023-06-17
  • php中文字符如何转换成数字
    小编给大家分享一下php中文字符如何转换成数字,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php中文字符转换成数字的方法:首先创建一个PHP示例文件;然后通过“function cn2num($string){...}”...
    99+
    2023-06-14
  • MySQL中如何处理字符集
    这篇文章给大家介绍MySQL中如何处理字符集,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  MySQL的字符集怎么处理  发送请求  客户端(character_set_client...
    99+
    2022-10-18
  • Linux中如何使用paste命令处理字符串
    这篇文章给大家介绍Linux中如何使用paste命令处理字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。名称:paste位置:/usr/bin/paste权限:所有用户作用:多个文件的对应的两行贴在一起,用法:pa...
    99+
    2023-06-13
  • php如何只获取中文字符
    这篇文章主要介绍“php如何只获取中文字符”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何只获取中文字符”文章能帮助大家解决问题。php中可用preg_match_all()配合正则表达式过...
    99+
    2023-06-30
  • php中文字符集如何设置
    今天小编给大家分享一下php中文字符集如何设置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、字符集的基本概念字符集(Ch...
    99+
    2023-07-06
  • 如何在PHP中使用字符串
    引言 字符串是由一个或多个字符组成的序列,可以由字母、数字或符号组成。所有的书面通信都是由字符串组成的。因此,它们是任何编程语言的基础。 在本文中,您将学习如何创建和查看字符串的输出,如何使用转义序列...
    99+
    2023-09-18
    php 开发语言
  • php字符串连接符如何使用
    在PHP中,可以使用.(点)作为字符串连接符。例如:```php$str1 = "Hello";$str2 = "World";$r...
    99+
    2023-08-30
    php
  • 如何使用原生ajax处理json字符串
    这篇文章将为大家详细讲解有关如何使用原生ajax处理json字符串,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。AJAXAJAX = Asynchronous JavaS...
    99+
    2022-10-19
  • php转义字符如何使用
    在PHP中,可以使用反斜杠(\)来转义特殊字符。以下是一些常见的转义字符的示例:1. 转义双引号("):```php$str = "...
    99+
    2023-08-19
    php
  • php如何实现中文字符串截取
    这篇文章主要讲解了“php如何实现中文字符串截取”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现中文字符串截取”吧!在php中,可以利用mb_substr()函数来截取...
    99+
    2023-06-20
  • php中文字符如何转十六进制
    这篇文章将为大家详细讲解有关php中文字符如何转十六进制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php中文字符转十六进制的方法:1、创建一个PHP示例文件;2、通过“function hexenco...
    99+
    2023-06-26
  • php如何计算中文字符串长度
    这篇文章主要为大家展示了“php如何计算中文字符串长度”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php如何计算中文字符串长度”这篇文章吧。对于这个问题,我们可能第一反应就是使用strlen(...
    99+
    2023-06-20
  • C语言如何使用字符串处理函数
    这篇文章主要介绍了C语言如何使用字符串处理函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。strlen:1.计数器版本:#include<stdio.h>#in...
    99+
    2023-06-22
  • php如何判断字符串是中文还是数字
    这篇文章主要讲解了“php如何判断字符串是中文还是数字”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何判断字符串是中文还是数字”吧!php判断字符串是中文还是数字的方法:1、通过“i...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作