首頁 > 後端開發 > php教程 > iconv 與 mb_convert_string 字串轉換

iconv 與 mb_convert_string 字串轉換

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-29 09:12:49
原創
1309 人瀏覽過

最近也一直在和字串轉換打交道,比較常用到的就是這兩個php自帶的字串轉換.那麼接下來我會以一些場景來使用這兩個字串編碼轉換函數


使用場景:
請求:ajax POST請求
伺服器編碼 GBK
頁面編碼GBK

問題:因為ajax請求發出的資料都是utf-8格式的編碼,因此我們必須將utf-8編碼的資料進行一個轉換

解決方案1: 使用iconv

<code><?php
<span>$postStr</span> = file_get_contents(<span>"file://input"</span>); <span>//</span> 将post的数据以字符流的形式读取
<span>$inCharset</span> = <span>"UTF-8"</span>;
<span>$outCharset</span> = <span>"GBK"</span>;
<span>$postStr</span> = iconv(<span>$inCharset</span>,<span>$outCharset</span>,<span>$postStr</span>);
<span>//</span> 将字符串转换为<span>$_POST</span>形式的数组
parse_str(<span>$postStr</span>,<span>$_post</span>);
</code>
登入後複製

解決辦法2: 使用mb_convert_encode()

<code><?php
<span>$postStr</span> = file_get_contents(<span>"file://input"</span>); <span>//</span> 将post的数据以字符流的形式读取
<span>$inCharset</span> = <span>"UTF-8"</span>;
<span>$outCharset</span> = <span>"GBK"</span>;
<span>$postStr</span> = mb_convert_encode(<span>$postStr</span>,<span>$outCharset</span>,<span>$inCharset</span>);

<span>//</span> 将字符串转换为<span>$_POST</span>形式的数组
parse_str(<span>$postStr</span>,<span>$_post</span>);
</code>
登入後複製

以上兩種方法均可以進行字串轉碼,然而有一點需要注意,如果將轉換好的字串轉回去,切不可兩種方法混用.否則中文字元可能會出現階段的問題。

範例:

<code><?php
<span>$postStr</span> = file_get_contents(<span>"file://input"</span>); // 将post的数据以字符流的形式读取
<span>$inCharset</span> = <span>"UTF-8"</span>;
<span>$outCharset</span> = <span>"GBK"</span>;
<span>$postStr</span> = mb_convert_encode(<span>$postStr</span>,<span>$outCharset</span>,<span>$inCharset</span>);

// 转换为原来的字符串
<span>$postStr</span> = iconv(<span>$outCharset</span>,<span>$inCharset</span>.<span>"//IGNORE"</span>,<span>$postStr</span>);
// 如果源 <span>$postStr</span>为 UTF-<span>8</span>的 <span>'我是谁?'</span>
// 那么新的 <span>$postStr</span> 为 <span>'?'</span> ,如果不加 <span>"//IGNORE"</span> 结尾 则会跑出一个异常

</code>
登入後複製

因此千萬不要嵌套兩個方法進行相互轉換。

')​​.addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了iconv 與 mb_convert_string 字串轉換,包括了ajax方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板