PHP文字格式編碼轉換

2021-10-07 04:31:49 字數 1218 閱讀 8258

$text是用fread, fgets等函式讀取到的文字內容,因為格式可能為gbk,而php顯示是utf8,所以會亂碼,用下面**判斷$text編碼格式並轉成utf8,這樣輸出就不會有亂碼了

$text = file_get_contents($filepath);

//$encodtype = mb_detect_encoding($text);

define('utf32_big_endian_bom', chr(0x00) . chr(0x00) . chr(0xfe) . chr(0xff));

define('utf32_little_endian_bom', chr(0xff) . chr(0xfe) . chr(0x00) . chr(0x00));

define('utf16_big_endian_bom', chr(0xfe) . chr(0xff));

define('utf16_little_endian_bom', chr(0xff) . chr(0xfe));

define('utf8_bom', chr(0xef) . chr(0xbb) . chr(0xbf));

$first2 = substr($text, 0, 2);

$first3 = substr($text, 0, 3);

$first4 = substr($text, 0, 3);

$encodtype = "";

if ($first3 == utf8_bom)

$encodtype = 'utf-8 bom';

else if ($first4 == utf32_big_endian_bom)

$encodtype = 'utf-32be';

else if ($first4 == utf32_little_endian_bom)

$encodtype = 'utf-32le';

else if ($first2 == utf16_big_endian_bom)

$encodtype = 'utf-16be';

else if ($first2 == utf16_little_endian_bom)

$encodtype = 'utf-16le';

//下面的判斷主要還是判斷ansi編碼的·

if ($encodtype == '') else if ($encodtype == 'utf-8 bom') else

DOS文字格式轉Unix文字格式Python指令碼

網上一頓查,發現是dos文字格式與unix文字格式有差異的問題。好在ubuntu有dos2unix工具,可以把dos文字格式轉為unix文字格式,使用方法見 但是問題來了,核心原始碼千千萬,不能乙個乙個手動轉吧?所以寫了個python指令碼,這個指令碼的功能是,把當前目錄包括子目錄的所有檔案轉為un...

shell文字格式

linux的shell種類眾多,常見的有 bourne shell usr bin sh或 bin sh bourne again shell bin bash c shell usr bin csh k shell usr bin ksh shell for root sbin sh 等等。不同的...

UGUI 文字格式

先說一種使用 載入text文字的方法 public string loadinfo string path 就是在resources資料夾下,放了乙個儲存為utf 8文字格式,的.txt檔案,然後就可以使用上面方式取到.txt檔案的文字。首行縮排 直接使用網上的取巧辦法,在文字前面加這個東西。jay...