pHp中的另外一個函數iconv也是用來轉換編碼的

2023-12-06    分類: 網站建設

在pHp代碼轉換中使用mb_convert_encoding和iconv的說明

更新時間:2009年12月16日17:43:25作者:

mb_convert_encoding此函數用于轉換編碼。我從不了解程序編碼的概念,但現在似乎有所啟發。

但是,英語通常不會出現編碼問題,只有中文數據會出現此問題。例如,當您使用Zend Studio或Editplus編寫程序時,將使用gbk編碼。如果需要將數據輸入數據庫,并且數據庫編碼為utf8,則必須對數據進行編碼和轉換,否則在進入數據庫時會出現亂碼。

有關mb_convert_encoding的用法,請參見官方文件:

將GbK轉換為UTF-8

復制代碼,代碼如下:

又一個Gb2312到big5

復制代碼,代碼如下:

但是,要使用上述功能,需要安裝它,但需要首先啟用mbstring擴展庫。

pHp中的另一個函數iconv也用于轉換字符串編碼,類似于上面的函數。

下面有一些詳細的示例:

iconv —將字符串轉換為請求的字符編碼

(pHp 4> =4.0.5,pHp5)

mb_convert_encoding —轉換字符編碼

(pHp 4> =4.0.6,pHp5)

用法:

字符串mb_convert_encoding(字符串str,字符串to_encoding [,混合from_encoding])

您需要先啟用mbstring擴展庫,然后刪除; extension = php_mbstring.dll在前面;在php.ini中

mb_convert_encoding可以指定多種輸入編碼,它將根據內容自動識別,但是執行效率比iconv差很多;

字符串iconv(字符串in_charset,字符串out_charset,字符串str)

注意:第二個參數除了指定要轉換的編碼之外,還可以添加兩個后綴:// TRANSLIT和// IGNORE,其中// TRANSLIT將自動更改無法直接轉換為一個的字符更多類似的字符,// IGNORE將忽略無法轉換的字符,默認效果是從第一個非法字符開始切斷。

失敗時返回轉換后的字符串或FALSE。

使用:

發現iconv將字符“ —”轉換為gb2312時會出錯。如果沒有ignore參數,則無法保存字符后的所有字符串。在任何情況下,該“ —”都無法成功轉換,也無法輸出。此外,mb_convert_encoding沒有此錯誤。

通常,使用iconv,并且僅在無法確定原始編碼或轉換后無法正常顯示iconv時,才使用mb_convert_encoding函數。

from_encoding由轉換前的字符代碼名稱指定。它可以是數組或字符串逗號分隔的枚舉列表。如果未指定,則將使用內部編碼。

/ *自動檢測JIS,eucjp-win,sjis-win的編碼,然后將str轉換為UCS-2LE * /

$ str = mb_convert_encoding($ str,“ UCS-2LE”,“ JIS,eucjp-win,sjis-win”);

/ *“自動”擴展為“ ASCII,JIS,UTF-8,EUC-Jp,SJIS” * /

$ str = mb_convert_encoding($ str,“ EUC-Jp”,“ auto”);

示例:

復制代碼,代碼如下:

$ content = iconv(“ GbK”,“ UTF-8”,$ content);

$ content = mb_convert_encoding($ content,“ UTF-8”,“ GbK”);

在pHp中使用mb_convert_encoding轉碼的小陷阱

每個人都熟悉使用mb_convert_encoding()方法進行php程序中的字符編碼轉換,并且在平時也大量使用它。總的來說,這種方法也表現出色,值得稱贊。但是在一個項目中,我們需要使用它將UTF8轉換為GbK,并且在轉換某些特殊字符時發現了一個小問題。特定的性能是mb將可以在utf8中編碼但不能在gbk中編碼的字符轉換為\ 0x00 \ 0x80,這導致轉換后的gbk字符有問題。

在我們的思想中,在字符編碼轉換過程中,如果遇到目標編碼無法表達的字符,那么代碼轉換程序應該做的就是丟棄該字符,以便盡管丟失了一些數據,但是不會導致轉碼的字符序列不可用。尚不清楚mb為什么使用上述方法而不是放棄它。

臨時解決方案是過濾轉碼后的字符串序列php url編碼轉換,以過濾掉\ x00 \ 80的所有字符;或在轉義之前過濾utf8字符串以過濾出可以表示的ut8和gbk對于所有無法表示的字符,從實現難度上來說php url編碼轉換,第一種過濾方法相對容易實現。

新聞名稱:pHp中的另外一個函數iconv也是用來轉換編碼的
文章轉載:http://m.kartarina.com/news37/299337.html

成都網站建設公司_創新互聯,為您提供標簽優化域名注冊外貿網站建設網站維護軟件開發虛擬主機

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

營銷型網站建設
主站蜘蛛池模板: 亚洲av无码日韩av无码网站冲| 精品无码av无码专区| 无码精品国产dvd在线观看9久| 久久久久久无码Av成人影院| AV无码久久久久不卡蜜桃| 国产强被迫伦姧在线观看无码 | 国模无码一区二区三区| yy111111少妇无码影院| 中文字幕无码日韩欧毛| 四虎影视无码永久免费| 免费a级毛片无码a∨蜜芽试看| 中文午夜乱理片无码| 国产裸模视频免费区无码| 91久久九九无码成人网站 | 高清无码一区二区在线观看吞精 | 免费无码又爽又刺激高潮视频| 免费无码一区二区| 无码人妻精品内射一二三AV | 精品亚洲A∨无码一区二区三区| 亚洲成av人片在线观看天堂无码 | 国产精品久久久久无码av| 久久久久久av无码免费看大片| 孕妇特级毛片WW无码内射| 国产精品无码久久综合| 久久久久无码国产精品不卡 | 精品无人区无码乱码毛片国产| 精品人妻无码一区二区色欲产成人 | 水蜜桃av无码一区二区| 久久综合一区二区无码| 免费无码又爽又刺激高潮| 亚洲中文字幕无码一去台湾| 亚洲∧v久久久无码精品| 亚洲爆乳无码专区| 亚洲日韩中文无码久久| 亚洲av无码一区二区三区网站 | 亚洲私人无码综合久久网| 人妻无码中文久久久久专区| 久久综合精品国产二区无码| 无码精品一区二区三区免费视频| 未满十八18禁止免费无码网站 | 亚洲av无码天堂一区二区三区|