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

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

PHP擴展之字符串編碼相關(guān)函數(shù)2——多字節(jié)字符串

瀏覽:3日期:2022-09-15 16:47:32
簡介

雖然許多語言每個必要字符都能一對一映射到 8 比特(bit)的值,但也有好幾種語言需要非常多的字符來書面通訊,以至于它們的編碼范圍不能僅僅包含在一個字節(jié)里(一個字節(jié) Byte 由 8 比特 bit 構(gòu)成。每一比特僅能包含兩種不同的值: 1 或 0。所以,一字節(jié)僅能夠表示 256 種不同的值,即 2 的八次方)。 開發(fā)多字節(jié)字符編碼方案是為了在基于字節(jié)的常規(guī)編碼系統(tǒng)中表達超過 256 個字符。

在你操作(trim、split、splice 等等)多字節(jié)編碼的字符串的時候,由于在這種編碼方案下,兩個或多個連續(xù)字節(jié)可能只表達了一個字符,所以你需要使用專門的函數(shù)。 否則,當(dāng)你將不能檢測多字節(jié)字符串的函數(shù)應(yīng)用到這個字符串的時候,它可能無法檢測多字節(jié)字符的起始位置,并以亂碼字符串結(jié)尾,基本丟失了它原來的意思。

mbstring?提供了針對多字節(jié)字符串的函數(shù),能夠幫你處理 PHP 中的多字節(jié)編碼。 除此以外,mbstring?還能在可能的字符編碼之間相互進行編碼轉(zhuǎn)換。 為了方便起見,mbstring?設(shè)計成了處理基于 Unicode 的編碼,類似 UTF-8、UCS-2 及諸多單字節(jié)的編碼。

mbstring?不是一個默認擴展。這意味著它默認沒有被激活。 你必須在?configure?選項中顯式激活該模塊。

HTTP 輸入和輸出

HTTP 輸入/輸出字符編碼轉(zhuǎn)換同樣也適用于二進制數(shù)據(jù)。 如果 HTTP 輸入/輸出用到了二進制數(shù)據(jù),用戶應(yīng)當(dāng)控制字符的編碼轉(zhuǎn)換。

自 PHP 4.3.3 起,如果 HTML 表單的?enctype?屬性設(shè)置為?multipart/form-data,并且?php.ini?里的mbstring.encoding_translation?設(shè)置為 On, POST 的變量以及上傳文件的名稱也將會被轉(zhuǎn)換到內(nèi)部字符編碼。 不過,轉(zhuǎn)換不會應(yīng)用于查詢(query)的鍵。

HTTP 輸入在 PHP 腳本里無法控制 HTTP 輸入字符的轉(zhuǎn)換。 要禁用 HTTP 輸入字符的轉(zhuǎn)換,必須要在?php.ini?里設(shè)置。

Example #1 在?php.ini?中禁用 HTTP 輸入轉(zhuǎn)換

;; 禁用 HTTP 輸入轉(zhuǎn)換mbstring.http_input = pass;;禁用 HTTP 輸入轉(zhuǎn)換 (PHP 4.3.0 或更高版本)mbstring.encoding_translation = Off

當(dāng) PHP 以 Apache 模塊運行。這些設(shè)置還可以通過?httpd.conf?內(nèi)每個虛擬主機(Virtual Host)指令或每個目錄下的?.htaccess來覆蓋(override)。HTTP 輸出輸出字符編碼轉(zhuǎn)換的使用有幾種方式。 一種是使用?php.ini,另一種是使用?ob_start(),以?mb_output_handler()?作為?ob_start的回調(diào)函數(shù)。

Example #2?php.ini?設(shè)置例子

;; 為所有 PHP 頁面啟用輸出字符編碼的轉(zhuǎn)換;; 啟用輸出緩沖output_buffering = On;; 設(shè)置 mb_output_handler 來進行輸出的轉(zhuǎn)換output_handler = mb_output_handler

Example #3 腳本例子

<?php //?僅為此頁面啟用輸出字符編碼的轉(zhuǎn)換 //?設(shè)置?HTTP?輸出字符編碼為?SJIS mb_http_output(’SJIS’); //?開始緩沖并指定?'mb_output_handler'?為回調(diào)函數(shù) ob_start(’mb_output_handler’);?>多字節(jié)字符串 函數(shù)mb_check_encoding?— 檢查字符串在指定的編碼里是否有效mb_convert_case?— 對字符串進行大小寫轉(zhuǎn)換mb_convert_encoding?— 轉(zhuǎn)換字符的編碼mb_convert_kana?— Convert 'kana' one from another ('zen-kaku', 'han-kaku' and more)mb_convert_variables?— 轉(zhuǎn)換一個或多個變量的字符編碼mb_decode_mimeheader?— 解碼 MIME 頭字段中的字符串mb_decode_numericentity?— 根據(jù) HTML 數(shù)字字符串解碼成字符mb_detect_encoding?— 檢測字符的編碼mb_detect_order?— 設(shè)置/獲取 字符編碼的檢測順序mb_encode_mimeheader?— 為 MIME 頭編碼字符串mb_encode_numericentity?— Encode character to HTML numeric string referencemb_encoding_aliases?— Get aliases of a known encoding typemb_ereg_match?— Regular expression match for multibyte stringmb_ereg_replace_callback?— Perform a regular expresssion seach and replace with multibyte support using a callbackmb_ereg_replace?— Replace regular expression with multibyte supportmb_ereg_search_getpos?— Returns start point for next regular expression matchmb_ereg_search_getregs?— Retrieve the result from the last multibyte regular expression matchmb_ereg_search_init?— Setup string and regular expression for a multibyte regular expression matchmb_ereg_search_pos?— Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte stringmb_ereg_search_regs?— Returns the matched part of a multibyte regular expressionmb_ereg_search_setpos?— Set start point of next regular expression matchmb_ereg_search?— Multibyte regular expression match for predefined multibyte stringmb_ereg?— Regular expression match with multibyte supportmb_eregi_replace?— Replace regular expression with multibyte support ignoring casemb_eregi?— Regular expression match ignoring case with multibyte supportmb_get_info?— 獲取 mbstring 的內(nèi)部設(shè)置mb_http_input?— 檢測 HTTP 輸入字符編碼mb_http_output?— 設(shè)置/獲取 HTTP 輸出字符編碼mb_internal_encoding?— 設(shè)置/獲取內(nèi)部字符編碼mb_language?— 設(shè)置/獲取當(dāng)前的語言mb_list_encodings?— 返回所有支持編碼的數(shù)組mb_output_handler?— 在輸出緩沖中轉(zhuǎn)換字符編碼的回調(diào)函數(shù)mb_parse_str?— 解析 GET/POST/COOKIE 數(shù)據(jù)并設(shè)置全局變量mb_preferred_mime_name?— 獲取 MIME 字符串mb_regex_encoding?— Set/Get character encoding for multibyte regexmb_regex_set_options?— Set/Get the default options for mbregex functionsmb_send_mail?— 發(fā)送編碼過的郵件mb_split?— 使用正則表達式分割多字節(jié)字符串mb_strcut?— 獲取字符的一部分mb_strimwidth?— 獲取按指定寬度截斷的字符串mb_stripos?— 大小寫不敏感地查找字符串在另一個字符串中首次出現(xiàn)的位置mb_stristr?— 大小寫不敏感地查找字符串在另一個字符串里的首次出現(xiàn)mb_strlen?— 獲取字符串的長度mb_strpos?— 查找字符串在另一個字符串中首次出現(xiàn)的位置mb_strrchr?— 查找指定字符在另一個字符串中最后一次的出現(xiàn)mb_strrichr?— 大小寫不敏感地查找指定字符在另一個字符串中最后一次的出現(xiàn)mb_strripos?— 大小寫不敏感地在字符串中查找一個字符串最后出現(xiàn)的位置mb_strrpos?— 查找字符串在一個字符串中最后出現(xiàn)的位置mb_strstr?— 查找字符串在另一個字符串里的首次出現(xiàn)mb_strtolower?— 使字符串小寫mb_strtoupper?— 使字符串大寫mb_strwidth?— 返回字符串的寬度mb_substitute_character?— 設(shè)置/獲取替代字符mb_substr_count?— 統(tǒng)計字符串出現(xiàn)的次數(shù)mb_substr?— 獲取字符串的部分

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 办公室家具公司_办公家具品牌厂家_森拉堡办公家具【官网】 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 全自动面膜机_面膜折叠机价格_面膜灌装机定制_高速折棉机厂家-深圳市益豪科技有限公司 | 捷码低代码平台 - 3D数字孪生_大数据可视化开发平台「免费体验」 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 鑫达滑石-辽宁鑫达滑石集团| 传动滚筒_厂家-淄博海恒机械制造厂 | 质检报告_CE认证_FCC认证_SRRC认证_PSE认证_第三方检测机构-深圳市环测威检测技术有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 风淋室生产厂家报价_传递窗|送风口|臭氧机|FFU-山东盛之源净化设备 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 中药超微粉碎机(中药细胞级微粉碎)-百科 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | PTFE接头|聚四氟乙烯螺丝|阀门|薄膜|消解罐|聚四氟乙烯球-嘉兴市方圆氟塑制品有限公司 |