电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解PHP用mb_string處理windows中文字符

瀏覽:8日期:2022-09-07 11:50:04

我們都知道windows中(當(dāng)然是中文版),文件名和文件內(nèi)容等編碼都是gbk,而我們?cè)陂_(kāi)發(fā)過(guò)程中,IDE里的編碼則是UTF-8,(這里不討論為什么等等問(wèn)題,只考慮怎么把編碼轉(zhuǎn)變成一樣的)所以導(dǎo)致我寫(xiě)的UTF-8編碼的正則模式字符串中的中文在gbk編碼的文件中并不能正確匹配。

一開(kāi)始,我并沒(méi)有什么辦法,試過(guò)把PHP腳本文件的編碼也改成GBK,也可以用,但是想到這種方法太low了,所以找一找PHP中有沒(méi)有函數(shù)可以滿(mǎn)足我的需求。

這時(shí),我想到了以前在處理windows中的文件名時(shí)用的函數(shù)iconv(),其函數(shù)原型如下:

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

Performsacharactersetconversiononthestringstrfromin_charsettoout_charset.

我們常使用:

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

來(lái)處理文件名,將文件名改從gbk改為UTF-8而內(nèi)容不變。

手冊(cè)翻譯附加:

如果你在輸出字符串$out_charset后面添加//TRANSLIT即$out_charset=’utf-8//TRANSLIT’,在遇到不能轉(zhuǎn)換為UTF-8的字符時(shí),程序會(huì)自動(dòng)替換為一個(gè)相似字符的UTF-8字符; 如果你在輸出字符串$out_charset后面添加//IGNORE即$out_charset=’utf-8//IGNORE’,在遇到不能轉(zhuǎn)換為UTF-8的字符時(shí),程序會(huì)自動(dòng)跳過(guò)這個(gè)字符。 如果你什么都沒(méi)加,就在遇到不能替換成UTF-8的字符時(shí),替換會(huì)被中斷。

但是,我在用這個(gè)函數(shù)處理時(shí),結(jié)果卻是這樣:

詳解PHP用mb_string處理windows中文字符

意思是iconv()函數(shù)能處理的最大字符數(shù)只有64,一般的文件名大小,而我的文件內(nèi)容很顯然不止64個(gè)字符。

沒(méi)有辦法,我只好再次各種翻找別的函數(shù)。

直到我發(fā)現(xiàn)了mb_string函數(shù)庫(kù),這個(gè)函數(shù)庫(kù)一般都在PHP環(huán)境里集成,我們可以在phpinfo()里找到它。

詳解PHP用mb_string處理windows中文字符

mb_string函數(shù)里有一個(gè)mb_convert_encoding()函數(shù),可以將一個(gè)字符串的編碼改變,其函數(shù)原型如下:

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

Convertsthecharacterencodingofstringstrtoto_encodingfromoptionallyfrom_encoding.

基原型跟iconv()函數(shù)差不多,只是它沒(méi)有對(duì)輸出函數(shù)的后綴修飾,它也沒(méi)有對(duì)字符串長(zhǎng)度的明確限制。

而且我們看到$from_encoding是可選的,它可以自動(dòng)識(shí)別源編碼。

因?yàn)檎也坏揭粋€(gè)確切的無(wú)法轉(zhuǎn)碼的字符,也不知道它遇到無(wú)法轉(zhuǎn)碼的字符會(huì)怎么處理。

通過(guò)mb_convert_encoding()函數(shù),將整個(gè)文件處理了一下,于是,問(wèn)題順利解決。

最后介紹一下mb_string函數(shù)庫(kù),它全名叫MultibyteString,它的很多方法都擴(kuò)展自PHP自身的string函數(shù)庫(kù),函數(shù)名在原函數(shù)的前面加了'mb_',這些函數(shù)除了擁有原函數(shù)的作用外,還在可選參數(shù)的最后加入了一個(gè)$encoding的可選參數(shù),這個(gè)參數(shù)可以規(guī)定函數(shù)以什么樣的編碼方式來(lái)處理字符串。

例如strpos()函數(shù),找到一個(gè)字符串在另一個(gè)字符串中的位置。

strpos('歡迎來(lái)訪(fǎng)問(wèn)','問(wèn)',0)返回的結(jié)果是12,因?yàn)槟_本是UTF-8編碼,而將字符串轉(zhuǎn)為UTF-8編碼后,每個(gè)中文字符會(huì)占用3個(gè)字節(jié)。

而在mb_strpos()函數(shù)中,mb_strpos('歡迎來(lái)訪(fǎng)問(wèn)','問(wèn)',0,’utf-8’)則會(huì)返回4,它會(huì)將字符串當(dāng)作已經(jīng)轉(zhuǎn)UTF-8的狀態(tài)執(zhí)行。

而mb_strpos('歡迎來(lái)訪(fǎng)問(wèn)','問(wèn)',0,’gbk’)會(huì)返回6

以上就是詳解PHP用mb_string處理windows中文字符的詳細(xì)內(nèi)容,更多關(guān)于PHP用mb_string處理windows中文字符的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 汽液过滤网厂家_安平县银锐丝网有限公司 | 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | 酵素生产厂家_酵素OEM_酵素加盟_酵素ODM_酵素原料厂家_厦门益力康 | 纸布|钩编布|钩针布|纸草布-莱州佳源工艺纸布厂 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 保温杯,儿童婴童奶瓶,运动水壶「广告礼品杯定制厂家」超朗保温杯壶 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 农业仪器网 - 中国自动化农业仪器信息交流平台 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 接地电阻测试仪[厂家直销]_电缆故障测试仪[精准定位]_耐压测试仪-武汉南电至诚电力设备 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 防爆电机生产厂家,YBK3电动机,YBX3系列防爆电机,YBX4节防爆电机--河南省南洋防爆电机有限公司 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 喷涂流水线,涂装流水线,喷漆流水线-山东天意设备科技有限公司 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 尚为传动-专业高精密蜗轮蜗杆,双导程蜗轮蜗杆,蜗轮蜗杆减速机,蜗杆减速机生产厂家 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 小威小说网 - 新小威小说网 - 小威小说网小说搜索引擎 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 高压油管,液压接头,液压附件-烟台市正诚液压附件 | 合肥办公室装修 - 合肥工装公司 - 天思装饰| pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 |