C語言中怎么判斷utf8編碼,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
梅列網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),梅列網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為梅列上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的梅列做網(wǎng)站的公司定做!
實例代碼:
int utf8_check(const char* str, size_t length) { size_t i; int nBytes; unsigned char chr; i = 0; nBytes = 0; while (i < length) { chr = *(str + i); if (nBytes == 0) { //計算字節(jié)數(shù) if ((chr & 0x80) != 0) { while ((chr & 0x80) != 0) { chr <<= 1; nBytes++; } if ((nBytes < 2) || (nBytes > 6)) { return 0; //第一個字節(jié)最少為110x xxxx } nBytes--; //減去自身占的一個字節(jié) } } else { //多字節(jié)除了第一個字節(jié)外剩下的字節(jié) if ((chr & 0xC0) != 0x80) { return 0; //剩下的字節(jié)都是10xx xxxx的形式 } nBytes--; } i++; } return (nBytes == 0); }
看完上述內(nèi)容,你們掌握C語言中怎么判斷utf8編碼的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!