php二進制包
1、建議整站使用UTF8編碼,如果你已使用的是GB2312或GBK編碼,請使用iconv或自定義的gb2312與utf8轉換函數進行字元編碼轉換。gb2312與utf8轉換函數請參考PHP Ajax傳值中文字元亂碼如何解決。
2、如果你是剛進行php環境搭建,建議將Apache配置文件中的默認字元集修改為UTF8,即AddDefaultCharset UTF8。
3、如果上述方法還不行,請檢查你在編譯gd庫時是否添加了–enable-gd-jis-conv選項,此選項是為了讓gd庫支持日文編碼的字型檔,請取消此選項並重新編譯。此方法我沒驗證過,估計主要是針對Unix下安裝配置php環境。Windows環境一般不會出現這種情況,似乎默認PHP配置文件是注釋掉的。
4、使用php gd庫產生中文亂碼的另一個原因是沒有選擇正確的TTF字體,你需要選擇支持中文的字體,常用的中文字體文件是simsun.ttc和simhei.ttf。
OK,只要按照上述方法,基本上使用php gd庫產生中文亂碼時都能夠解決。只要仔細排查其實gd庫的中文亂碼解決起來非常方便。
『貳』 怎樣在PHP中把16進制HEX數據轉換為2進制數據呢
十六進制轉為二進制有兩種理解方法,第一是十六進制字元串轉二進制字元串,第二是十六進制數轉二進制數,下面分別介紹2種轉換方法:
1.hex2bin函數可以將十六進制字元串轉換為二進制字元串,詳細用法如下:
hex2bin — 轉換十六進制字元串為二進制字元串
stringhex2bin(string$data)
轉換十六進制字元串為二進制字元串。
參數:
data:十六進製表示的數據
返回值:
返回給定數據的二進製表示 或者在失敗時返回 FALSE。
異常:
如果輸入的十六進制字元串是奇數長數或者無效的十六進制字元串將會拋出E_WARNING 級別的錯誤。
示例:
$hex=hex2bin("");
echo$hex;//examplehexdata(其中16進制代表的是ascii碼)
2.base_convert是真正意義上的進制轉換函數
base_convert — 在任意進制之間轉換數字
stringbase_convert(string$number,int$frombase,int$tobase)
返回一字元串,包含 number以 tobase 進制的表示。number 本身的進制由frombase指定。frombase 和 tobase 都只能在2 和 36 之間(包括 2 和 36)。高於十進制的數字用字母 a-z 表示,例如a 表示 10,b 表示 11 以及 z 表示 35。
參數:
number:要轉換的數字
frombase:原始進制
tobase:轉換後的進制
示例:
$hexadecimal='A37334';
echobase_convert($hexadecimal,16,2);//101000110111001100110100