iconv — 字串按要求的字元編碼來轉換
iconv有bug ,碰到一些生僻字就會無法轉換,當然了配置第二個引數時,可以稍微彌補一下預設缺陷,不至於無法轉換是截斷,用法如下
iconv(「utf-8″,」gb2312//ignore」,$data) ;
這樣碰到生僻字轉換失敗時,它就會忽略失敗,繼續轉換下面的內容。
iconv
string iconv ( string $in_charset
, string $out_charset
, string $str
)第乙個引數:內容原的編碼
第二個引數:目標編碼
第三個引數:要轉的字串
函式返回字串
<?php
$instr
= 『測試』;
// gbk轉utf-8
$outstr
=iconv
(『gbk』,'utf
-8′,
$instr);
?>
返回值
返回轉換後的字串, 或者在失敗時返回 false。
為了確保轉換的成功率,我們可以用另乙個轉換函式
mb_convert_encoding,這個函式效率不是很高,另外這個函式還可以省略第三個引數,自動識別內容編碼,不過最好不要用,影響效率,還需要注意的時,mb_convert_encoding和iconv引數順序不一樣,一定要注意。
附兩個函式簡單的用法:
mb_convert_encoding
string mb_convert_encoding ( string $str
, string $to_encoding
[, mixed $from_encoding])
第乙個引數:要處理的字串
第二個引數:目標編碼
第三個引數:內容原編碼,它可以是乙個 array 也可以是逗號分隔的列舉列表
<?php
$instr
='測試'
;// gbk轉utf-8
$outstr
=mb_convert_encoding
($instr
,'utf-8'
,'gbk',)
;$str
=mb_convert_encoding
($instr
,"ucs-2le"
,"jis, eucjp-win, sjis-win");
?>
mb_convert_variables — 轉換乙個或多個變數的字元編碼
mb_convert_variables (
$to_encoding
,$from_encoding,&
$vars
[, mixed &$...
])
將變數 vars 的編碼從 from_encoding 轉換成編碼 to_encoding。
to_encoding 將 string 轉換成這個編碼。
from_encoding 可以指定為乙個 array 或者逗號分隔的 string,它將嘗試根據 from-coding 來檢測編碼。 當省略了 from_encoding,將使用 detect_order。
vars 是要轉換的變數的引用。 引數可以接受 string、array 和 object 的型別。 mb_convert_variables
() 假設所有的引數都具有同樣的編碼。
額外的 vars。
返回值 :
成功時返回轉換前的字元編碼,失敗時返回 false。
例項:<?php
/* 轉換變數 $post1、$post2 編碼為內部(internal)編碼 */
$interenc
=mb_internal_encoding()
;$inputenc
=mb_convert_variables
($interenc
,"ascii,utf-8,sjis-win"
,$post1
,$post2);
?>
mb_internal_encoding — 設定/獲取內部字元編碼
mixed mb_internal_encoding (
[ string $encoding
=mb_internal_encoding()
])引數 :
encoding 字元編碼名稱使用於 http 輸入字元編碼轉換、http 輸出字元編碼轉換、mbstring 模組系列函式字元編碼轉換的預設編碼。
返回值 :
如果設定了 encoding,則成功時返回 true, 或者在失敗時返回 false。 in this case
, the character encoding for multibyte regex is not changed. 如果省略了 encoding,則返回當前的字元編碼名稱。
<?php
/* 設定內部字元編碼為 utf-8 */
mb_internal_encoding
("utf-8");
/* 顯示當前的內部字元編碼*/
echo
mb_internal_encoding()
;?>
mb_detect_encoding — 檢測字元的編碼
string mb_detect_encoding ( string $str
[, mixed $encoding_list
=mb_detect_order()
[, bool $strict
=false]]
)
引數
str 待檢查的字串。
encoding_list 是乙個字元編碼列表。 編碼順序可以由陣列或者逗號分隔的列表字串指定。
如果省略了 encoding_list 將會使用 detect_order。
strict strict 指定了是否嚴格地檢測編碼。 預設是 false。
返回值檢測到的字元編碼,或者無法檢測指定字串的編碼時返回 false。
字串編碼未知的情況下對字串進行編碼:
1、無論字串編碼是什麼,均轉換為gbk
function
getsafestr
($str
)else
}
畫重點
function
getsafestr
($str
)else
}
獲取字串編碼方法 :
function
getcode
($str
)else
}
字串編碼轉換 GBK utf8
pagedata 如果網頁編碼是utf 8的,可以這麼轉換為字串 pagesource alloc initwithdata pagedata encoding nsutf8stringencoding 如果網頁是gbk 或者gb2312 用utf8轉換的話,pagesource返回nil。這時需要...
Python字元編碼轉碼之GBK,UTF8互轉
1 須知 在pythonwww.cppcns.com 2中預設編碼是 ascii,而在python 3中預設編碼是 unicode unicode 分為utf 32 佔4個位元組 utf 16 佔兩個位元組 utf 8 佔1 4個位元組 所以utf 16 是最常用的unicode版本,但是在檔案裡存...
字元格式(gbk utf8等)
gbk就是在儲存你的帖子的時候,乙個漢字占用兩個位元組。外國人看會出現亂碼,此為我中華為自己漢字編碼而形成之解決方案。utf8就是在儲存你的帖子的時候,乙個漢字占用3個位元組。但是外國人看的話不會亂碼,此為西人為了解決多位元組字元而形成之解決方案。ascii iso 8859 1 是鼻祖,最簡單的方...