導航:首頁 > 編程語言 > php字元集轉換

php字元集轉換

發布時間:2022-07-09 08:26:50

php中如何把一個字元串轉換為utf-8編碼的 如題 謝謝了

1、把 GBK 編碼字串轉換成 UTF-8 編碼字串 view plain to clipboardprint? <?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK"); ?> 2、把 UTF-8 編碼字串轉換成 GB2312 編碼字串 view plain to clipboardprint? // 注意將此文件存檔成 utf-8 編碼格式文件再測試 <?php header("content-Type:text/html;charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8"); ?> // 注意將此文件存檔成 utf-8 編碼格式文件再測試 <?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb312","utf-8"); ?> 3、對整個頁面進行轉換 該方法適用所有編碼環境。這樣把前128個字元以外(顯示字元)的字元集都用 NCR(Numeric character reference,如「漢字」將轉換成「汉字」這種形式)來表示,這樣的編碼在任意編碼環境下頁面都能正常顯示。 在php文件的頭部加上下面三行代碼: view plain to clipboardprint? mb_internal_encoding(」gb2312″); // 這里的gb2312是你網站原來的編碼 mb_http_output(」HTML-ENTITIES」); ob_start(』mb_output_handler』); mb_internal_encoding(」gb2312″); // 這里的gb2312是你網站原來的編碼 mb_http_output(」HTML-ENTITIES」); ob_start(』mb_output_handler』); 使用mb_convert_encoding 函數需啟用PHP 的mbstring (multi-byte string)擴展

② php怎樣把utf8轉換為gbk

<?php@header("Content-type:text/html;charset=UTF-8");echo $str= '你好,這里是賣咖啡!';echo '<br />';echo iconv("UTF-8","gbk//TRANSLIT",$str);; //將字元串的編碼從UTF-8轉到GB2312

echo '<br />';echo iconv_substr($str, 1, 1, 'UTF-8'); //按字元個數截取而非位元組print_r(iconv_get_encoding()); //得到當前頁面編碼信息echo iconv_strlen($str, 'UTF-8'); //得到設定編碼的字元串長度?>

③ php對字元串轉換編碼後,在不同瀏覽器裡面顯示的為何不一樣,有的是亂碼求良方~

你好
亂碼問題分為好幾種情況
大部分情況下是編碼不統一造成的
以utf-8為例
1、網頁格式(在瀏覽器頁面單擊
右鍵——編碼——
utf-8
)
2、資料庫字元集(在你用到的資料庫上點右鍵——資料庫屬性——選擇utf8(UTF-8
Unicode)
3、資料庫表問題(以mysql為例
選定你取數據的表
右鍵——設計表——選定你的欄位看下方的字元集一欄是不是UTF-8)
4、取數據問題(在你的資料庫連接文件中寫入:mysql_query("set
names
utf8");)
5、網頁製作時錯誤(以dreamweaver為例,打開你的頁面,單擊最上面的修改——頁面屬性
——標題/編碼——在編碼那一列選擇UTF-8)
(注:以上問題調好後如果還有亂碼
就把你的頁面中文內容重新輸入一遍)

④ 如何將phpinfo字元串類型轉換

php中iconv、mb_convert_encoding函數字元編碼轉換詳解如下:

iconv函數庫能夠完成各種字元集間的轉換,是php編程中不可缺少的基礎函數庫。

$string="親愛的朋友歡迎訪問博客,希望給您帶來一點點的幫助!";
iconv("utf8","gbk",$string)//將字元串string編碼由utf8轉變成gbk;
echo[MathProcessingError]str=′好,歡迎訪問博客,該博客記錄一個程序員的成長過程!′;echo′<br/>′;echoiconv(′GB2312′,′UTF−8′,str);//將字元串的編碼從GB2312轉到UTF-8
echo'<br/>';
echoiconv_substr([MathProcessingError]str,1,1,′UTF−8′);//按字元個數截取而非位元組printr(iconvgetencoding());//得到當前頁面編碼信息echoiconvstrlen(str,'UTF-8');//得到設定編碼的字元串長度
//也有這樣用的
[MathProcessingError]content=iconv("UTF−8","gbk//TRANSLIT",content);

1、iconv不是php的默認函數,也是默認安裝的模塊。需要安裝才能用的。

如果是windows2000+php,你可以修改php.ini文件,將extension=php_iconv.dll前的";"去掉,同時你要你的原php安裝文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是這個目錄,我本地的沒有操作這一步)

linux環境下,用靜態安裝的方式,在configure時加多一項 --with-iconv就可以了,phpinfo看得到iconv的項。(Linux7.3+Apache4.06+php4.3.2);

到此php中的iconv 介紹完畢

2、用iconv函數把抓取來過的utf-8編碼的頁面轉成gb2312, 發現只有用iconv函數把抓取過來的數據一轉碼數據就會無緣無故的少一些。原因是這樣的:

string iconv ( string in_charset, string out_charset, string str )

注意:第二個參數,除了可以指定要轉化到的編碼以外,還可以增加兩個後綴://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 會自動將不能直接轉化的字元變成一個或多個近似的字元,//IGNORE 會忽略掉不能轉化的字元,而默認效果是從第一個非法字元截斷。 被截斷了,當然就會少了;

可以這樣修改iconv("UTF-8","GB2312//IGNORE",$string) 會忽略掉不能轉化的字元;

  1. PHP中的mb_convert_encoding與iconv函數介紹

  2. mb_convert_encoding這個函數是用來轉換編碼的,和iconv函數差不多。

  3. 英文一般不會存在編碼問題,只有中文數據才會有這個問題。比如用Zend Studio或Editplus寫程序時,用的是gbk編碼,如果數據需要入資料庫,而資料庫的編碼為utf8時,這時就要把數據進行編碼轉換,不然進到資料庫就會變成亂碼。

  4. 做一個GBK To UTF-8

    <?php
    header("content-Type:text/html;charset=Utf-8");//設置字元的編碼是utp-8
    echomb_convert_encoding("你系我的友仔","UTF-8","GBK");
    ?>
  5. 再做GB2312 To Big5

<?php
header("content-Type:text/html;charset=big5");
echomb_convert_encoding("朋友","big5","GB2312");
?>

不過要使用上面的函數需要安裝但是需要先enable mbstring 擴展庫,道理還是一樣的,修改php.ini。

PHP中的另外一個函數iconv也是用來轉換字元串編碼的,與上函數功能相似。

下面還有一些詳細的例子:

iconv—
(PHP4>=4.0.5,PHP5)
mb_convert_encoding—Convertcharacterencoding
(PHP4>=4.0.6,PHP5)
  1. stringmb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding]
  2. 需要先enable mbstring 擴展庫,在 php.ini里將; extension=php_mbstring.dll 前面的 ;

  3. 去掉mb_convert_encoding 可以指定多種輸入編碼,它會根據內容自動識別,但是執行效率比iconv差太多;

  4. 那為何還要講解 這個 mb_convert_encoding()函數呢?答案如下:

  5. 發現iconv在轉換字元」—」到gb2312時會出錯,如果沒有ignore參數,所有該字元後面的字元串都無法被保存。不管怎麼樣,這個」—」都無法轉換成功,無法輸出。

  6. 另外mb_convert_encoding沒有這個bug.

一般情況下用 iconv,只有當遇到無法確定原編碼是何種編碼,或者iconv轉化後無法正常顯示時才用mb_convert_encoding 函數.

⑤ php程序utf-8編碼如何轉換成gbk簡體中文編碼

給個轉碼的方法給你吧! 你可以自己修改$outEncoding的參數,下面的方法默認是轉換為gb2312的字元集了,你調用方法就可以將你的字元串轉換字元

//中文字元編碼轉換
public function safeEncoding($string,$outEncoding ='GB2312')
{
$encoding = "UTF-8";
for($i=0;$i<strlen($string);$i++)
{
if(ord($string{$i})<128)
continue;

if((ord($string{$i})&224)==224)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
//第二個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}

if((ord($string{$i})&192)==192)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二個位元組判斷通過
$encoding = "GB2312";
break;
}
}
}

if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}

⑥ PHP mysql 如何將從數據中讀入的中文亂碼轉換成中文字元

要解決亂碼首先需要知道出現亂碼的原因:
一、PHP+MySQL出現中文亂碼的原因。
1. MYSQL資料庫的編碼是utf8,與PHP網頁的編碼格式不一致,就會造成MYSQL中的中文亂碼。
2. 使用MYSQL中創建表、或者選擇欄位時設置的類型不是utf8,而網頁編碼不是utf8,也可能造成MYSQL中文亂碼.
3. PHP頁面的字元集與資料庫的編碼不一致。
4. PHP連接MYSQL資料庫,操作是設定的語句指定的編碼和頁面編碼,PHP頁面編碼不一致。
5. 用戶提交的HTML頁面編碼,和顯示數據的頁面編碼不一致 ,就肯定會造成PHP頁面亂碼.
二、解決中文亂碼:
1. 網頁編碼設置。一般在HTML代碼中的文件頭<html>中加入屬性:
<meta http-equiv=」Content-Type」 content=」text/html; charset=utf-8″>
保證,網頁是"utf-8"編碼。
2. PHP代碼設置。在php代碼的開始部分加入以下代碼:
header(」Content-type: text/html;charset=utf-8″);
且要求保存的文件編碼方式是utf-8,這樣就保證了該文件也是utf-8編碼。
3. 資料庫中表的欄位中存儲中文的部分,要設置為utf8_general_ci類型。
4.PHP在連接資料庫操作時,要設置操作的欄位類型為utf8,設置方法如下:
mysql_connect(』localhost』,'user』,'password』);mysql_select_db(』db』);mysql_query(」set names utf8;」); //**設置字元集***

⑦ PHP convert_cyr_string()函數講解

PHP
convert_cyr_string()
函數
實例
把字元串由一種字元集轉換成另一種:
<?php
$str
=
"Hello
world!
æøå";
echo
$str
.
"<br>";
echo
convert_cyr_string($str,'w','a');
?>
定義和用法
convert_cyr_string()函數把字元串由一種
Cyrillic
字元集轉換成另一種。
被支持的
Cyrillic
字元集是:
k
-
koi8-r
w
-
windows-1251
i
-
iso8859-5
a
-
x-cp866
d
-
x-cp866
m
-
x-mac-cyrillic
注釋:
該函數是二進制安全的。
語法
convert_cyr_string(
_string,from,to_
)
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:PHP
crypt()函數的用法講解phpinfo無法顯示的原因及解決辦法PHP
echo()函數講解PHP
crc32()函數講解PHP
count_chars()函數講解PHP安裝memcache擴展的步驟講解PHP配置ZendOpcache插件加速PHP
convert_uudecode()函數講解PHP安裝BCMath擴展的方法php
curl簡單採集圖片生成base64編碼(並附curl函數參數說明)

⑧ php中怎麼將GB18030轉換為UTF-8編碼

可以使用iconv函數對編碼進行轉換,iconv("gb18030", "utf-8", "要轉換的字元串");

iconv詳細用法如下:

iconv — 字元串按要求的字元編碼來轉換

stringiconv(string$in_charset,string$out_charset,string$str)

將字元串 str 從 in_charset 轉換編碼到 out_charset。

參數:

in_charset:輸入的字元集。

out_charset:輸出的字元集。

如果在 out_charset 後添加了字元串 //TRANSLIT,將啟用轉寫(transliteration)功能。

這個意思是,當一個字元不能被目標字元集所表示時,它可以通過一個或多個形似的字元來近似表達。

如果添加了字元串 //IGNORE,不能以目標字元集表達的字元將被默默丟棄。

否則,str 從第一個無效字元開始截斷並導致一個 E_NOTICE。

str:要轉換的字元串。

返回值:

返回轉換後的字元串, 或者在失敗時返回 FALSE。

⑨ PHP 轉換中文為編碼

給個轉碼的方法給你吧! 你可以自己修改$outEncoding的參數,下面的方法默認是轉換為gb2312的字元集了,你調用方法就可以將你的字元串轉換字元
//中文字元編碼轉換
public function safeEncoding($string,$outEncoding ='GB2312')
{
$encoding = "UTF-8";
for($i=0;$i<strlen($string);$i++)
{
if(ord($string{$i})<128)
continue;
if((ord($string{$i})&224)==224)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
//第二個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}
if((ord($string{$i})&192)==192)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二個位元組判斷通過
$encoding = "GB2312";
break;
}
}
}
if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}

⑩ PHP UNICODE 編碼轉換

Unicode是一個字元集,Unicode是定長的都為雙位元組.
這里我們常用的是utf8字元集編碼,樓主是說的Unicode轉換為UTF-8吧。
/**
*
Unicode字元轉換成utf8字元
*
@param
[type]
$unicode_str
Unicode字元
*
@return
[type]
Utf-8字元
*/
function
unicode_to_utf8($unicode_str)
{
$utf8_str
=
'';
$code
=
intval(hexdec($unicode_str));
//這里注意轉換出來的code一定得是整形,這樣才會正確的按位操作
$ord_1
=
decbin(0xe0
|
($code
>>
12));
$ord_2
=
decbin(0x80
|
(($code
>>
6)
&
0x3f));
$ord_3
=
decbin(0x80
|
($code
&
0x3f));
$utf8_str
=
chr(bindec($ord_1))
.
chr(bindec($ord_2))
.
chr(bindec($ord_3));
return
$utf8_str;
}

閱讀全文

與php字元集轉換相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:419
個人所得稅java 瀏覽:760
多餘的伺服器滑道還有什麼用 瀏覽:189
pdf劈開合並 瀏覽:26
不能修改的pdf 瀏覽:750
同城公眾源碼 瀏覽:488
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:78
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491