不用iconv函數(shù)實現(xiàn)UTF-8編碼轉(zhuǎn)換GB2312的PHP函數(shù)
Jun 08, 2016 pm 05:33 PM假如使用 iconv() 函數(shù)轉(zhuǎn)換編碼就相比比較簡單了,不過很多虛擬主機里并不支持這個組件,我在網(wǎng)上找半天,才找到一個gb2312轉(zhuǎn)utf-8的方法,但不能逆向轉(zhuǎn)換。
這個函數(shù)如下:
/*******************************
//GB轉(zhuǎn)UTF-8編碼
*******************************/
function gb2utf8($gbstr) {
global $CODETABLE;
if(trim($gbstr)=="") return $gbstr;
if(empty($CODETABLE)){
$filename = dirname(__FILE__)."/gb2312-utf8.table";
$fp = fopen($filename,"r");
while ($l = fgets($fp,15))
{ $CODETABLE[hexdec(substr($l, 0, 6))] = substr($l, 7, 6); }
fclose($fp);
}
$ret = "";
$utf8 = "";
while ($gbstr) {
if (ord(substr($gbstr, 0, 1)) > 127) {
$thisW = substr($gbstr, 0, 2);
$gbstr = substr($gbstr, 2, strlen($gbstr));
$utf8 = "";
@$utf8 = u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW)) - 0x8080]));
if($utf8!=""){
for ($i = 0;$i
$ret .= chr(substr($utf8, $i, 3));
}
}
else
{
$ret .= substr($gbstr, 0, 1);
$gbstr = substr($gbstr, 1, strlen($gbstr));
}
}
return $ret;
}
//Unicode轉(zhuǎn)utf8
function u2utf8($c) {
for ($i = 0;$i
$str = "";
if ($c
$str .= $c;
} else if ($c
$str .= (0xC0 | $c >> 6);
$str .= (0x80 | $c & 0x3F);
} else if ($c
$str .= (0xE0 | $c >> 12);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
} else if ($c
$str .= (0xF0 | $c >> 18);
$str .= (0x80 | $c >> 12 & 0x3F);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
}

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

這篇文章將為大家詳細講解有關(guān)PHP返回字符串第一個字符的ASCII值,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP傳回字串第一個字元的ASCII值引言在php中,取得字串第一個字元的ASCII值是一個常見的操作,涉及到字串處理和字元編碼基礎(chǔ)知識。 ASCII值用於表示字元在電腦系統(tǒng)中的數(shù)字值,對於字元比較、資料傳輸和儲存至關(guān)重要。過程取得字串第一個字元的ASCII值涉及以下步驟:取得字串:確定要取得ASCII值的字串。它可以是變數(shù)、字串常數(shù)

這篇文章將為大家詳細講解有關(guān)PHP返回一個字符串在另一個字符串中開始位置到結(jié)束位置的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中使用substr()函數(shù)從字串中擷取子字串substr()函數(shù)可從字串中擷取指定範圍內(nèi)的字元。其語法如下:substr(string,start,length)其中:string:要從中提取子字串的原始字串。 start:子字串開始位置的索引(從0開始)。 length(可選):子字串的長度。如果未指定,則提

php提交表單通過后,彈出的對話框怎樣在當前頁彈出php提交表單通過后,彈出的對話框怎樣在當前頁彈出而不是在空白頁彈出?想實現(xiàn)這樣的效果:而不是空白頁彈出:------解決方案--------------------如果你的驗證用PHP在后端,那么就用Ajax;僅供參考:HTML code

1Unicode電腦儲存的基本單位是位元組,由8個位元組組成。由於英文只由26個字母加若干符號組成,因此英文字元可以直接用位元組來保存。但是其他語言(例如中日韓等),由於字元眾多,不得不使用多個位元組來進行編碼。隨著電腦科技的傳播,非拉丁文字元編碼技術(shù)不斷發(fā)展,但是仍有兩個比較大的限制:不支援多語言:一種語言的編碼方案不能用於另一種語言沒有統(tǒng)一標準:例如中文就有GBK、GB2312、GB18030等多種編碼標準由於編碼方式不統(tǒng)一,開發(fā)人員就需要在不同編碼之間來回轉(zhuǎn)換,不可避免地會出現(xiàn)很多錯

__str__和__repr__有什麼異同?字串的表示形式我們都知道,Python的內(nèi)建函數(shù)repr()能夠把物件用字串的形式表達出來,方便我們辨認。這就是“字串表示形式”。 repr()就是透過__repr__這個特殊方法得到一個物件的字串表示形式的。如果沒有實作__repr__,當我們在控制臺裡列印一個向量的實例時,得到的字串可能會是。 >>>classExample:pass>>>print(str(Example()))>>>

了解PHP中的substr()函數(shù)用於截取字串在PHP語言中,substr()函數(shù)是一個非常有用的字串處理函數(shù),它可以用來截取指定位置和長度的字串片段。 substr()函數(shù)接受三個參數(shù):待截取的字串、截取的起始位置、截取的長度。以下我們將詳細介紹substr()函數(shù)的使用方法,並給出具體的程式碼範例。 substr()函數(shù)的基本用法substr()函數(shù)的

使用PHP函數(shù)"substr"取得字串的子字串在PHP程式中,經(jīng)常會遇到需要取得字串的部分內(nèi)容的情況。這時,我們可以使用PHP內(nèi)建的函數(shù)"substr"來實現(xiàn)。本文將介紹如何使用"substr"函數(shù)來取得字串的子字串,並提供一些程式碼範例。一、substr函數(shù)的基本用法substr函數(shù)用於從字串中取得指定長度的子字串。其基本語法如下:substr(

PHPmb_substr函數(shù)無效的處理方案在開發(fā)PHP應(yīng)用程式時,常會用到mb_substr函數(shù)來截取字串。然而,有時候可能會遇到mb_substr函數(shù)無效的情況,主要是因為在不同環(huán)境中字元編碼的問題。為了解決這個問題,我們需要對mb_substr函數(shù)進行有效的處理。常見的處理方案是透過設(shè)定適當?shù)淖衷幋a和截取長度來確保mb_substr函數(shù)能
