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

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

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

瀏覽:10日期: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ù)可以滿足我的需求。

這時(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)訪問(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)訪問(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)訪問(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)文章:
主站蜘蛛池模板: 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 破碎机锤头_耐磨锤头_合金锤头-鼎成机械一站式耐磨铸件定制服务 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 全自动端子机|刺破式端子压接机|全自动双头沾锡机|全自动插胶壳端子机-东莞市傅氏兄弟机械设备有限公司 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 茶叶百科网-茶叶知识与茶文化探讨分享平台 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | POM塑料_PBT材料「进口」聚甲醛POM杜邦原料、加纤PBT塑料报价格找利隆塑料 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 高温热泵烘干机,高温烘干热泵,热水设备机组_正旭热泵 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 福尔卡(北京)新型材料技术股份有限公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 九爱图纸|机械CAD图纸下载交流中心 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 粘度计,数显粘度计,指针旋转粘度计| 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 国际金融网_每日财经新资讯网 | 识禅_对禅的了解,从这里开始| 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 好杂志网-首页| 云南成考网_云南成人高考报名网 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 周易算网-八字测算网 - 周易算网-宝宝起名取名测名字周易八字测算网 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 南京和瑞包装有限公司|