PHP正確解析UTF 8字串

2022-05-01 11:15:09 字數 898 閱讀 8897

在《學習php&mysql之——字元編碼篇(一)》中介紹了unicode與utf-8的轉換關係,總結了乙個utf-8的編碼規則,根據這個編碼規則,寫乙個utf-8編碼的解析程式,以下是php的實現:

view code

<?php

/*程式功能,$str是中英文混合的utf-8編碼字串,

將此字串根據utf-8的編碼規則正確的解碼並顯示。

*//*

$str 是待擷取的字串

$len 是擷取的字元數

*/function utf8sub($str,$len)

$offset = 0; // 擷取高位位元組時的偏移量

$chars = 0; // 擷取到的字元數

$res = ''; // 存放擷取的結果字串

while($chars < $len)

if(($high>>2) === 0x3f)else

if(($high>>3) === 0x1f)else

if(($high>>4) === 0xf)else

if(($high>>5) === 0x7)else

if(($high>>6) === 0x3)else

if(($high>>7) === 0x0)

// echo '$count='.$count.'

';

$res .= substr($str,$offset,$count); // 取出乙個字元與$res字串連線

$chars += 1; // 擷取到的字元數+1

$offset += $count; // 擷取高位偏移量向後移$count位元組

} return $res;

}echo utf8sub($str,100);

Lua處理UTF8字串

專案裡遇到用string.sub擷取中文字串會擷取出來非空,但是無法展示的情況,進行utf字串處理後ok.核心部分是utf字串的判斷 utf 8 字元處理 local function stringtotable s local tb utf8的編碼規則 1.字元的第乙個位元組範圍 0x00 0x7...

UTF 8字元處理

參考 utf 8格式位元組 4中情況分別是 1 乙個位元組 0 x,低7位為有效資料,內碼是0x0 0x7f 2 兩個位元組 110 xx 10yyyyyy,低5位 低6位為有效資料,內碼是0x80 0x7ff 3 三個位元組 1110 x 10yyyyyy 10zzzzzz,低4位 低6位 低6位...

讓VC偵錯程式正確顯示UTF 8字串

讓vc偵錯程式正確顯示utf 8字串 預設的,vc偵錯程式只能正常顯示ansi字串及unicode字串,而utf 8字串及其他格式則無法顯示 這裡無需編寫外掛程式及修改配置檔案,只需要將要顯示的字串拉到watch中,並在變數後面新增,s8即可顯示 同樣型別的功能也應該很熟悉 數字 將變數拆分為陣列顯...