91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

utf16 utf8 ascii unicode 所有代碼都已經(jīng)經(jīng)過驗(yàn)證。而且里面也有相應(yīng)的例子。 所有的編碼格式進(jìn)行轉(zhuǎn)換,windows平臺。

資源截圖

代碼片段和文件信息

#include?“utfTools.h“
#include?
#include?
using?namespace?std;

CUtfTools*?CUtfTools::getInstance()
{
static?CUtfTools?gCUtfTools;
return?&gCUtfTools;
}


CUtfTools::CUtfTools()
{

}

CUtfTools::~CUtfTools()
{

}

int?CUtfTools::Utf16_To_Utf8(MYUTF16*?sourceStart?MYUTF8*?targetStart?size_t?outLen?ConversionFlags?flags?SourceDataByteOrder?byteOrder)
{
int?result?=?0;
MYUTF16*?source?=?sourceStart;
MYUTF8*?target?=?targetStart;
MYUTF8*?targetEnd?=?targetStart?+?outLen;

if?((NULL?==?source)?||?(NULL?==?targetStart)){
printf(“ERR?Utf16_To_Utf8:?source=%p?targetStart=%p\n“?source?targetStart);
return?conversionFailed;
}

while?(*source)?{
//網(wǎng)絡(luò)上的數(shù)據(jù)都是大端,權(quán)重越大的數(shù)據(jù)優(yōu)先傳輸
if?(byteOrder?==?BigEndian)
{
*source?=?ntohs(*source);
}
MYUTF32?ch;
unsigned?short?bytesToWrite?=?0;
const?MYUTF32?byteMask?=?0xBF;
const?MYUTF32?byteMark?=?0x80;
MYUTF16*?oldSource?=?source;?/*?In?case?we?have?to?back?up?because?of?target?overflow.?*/
ch?=?*source++;
/*?If?we?have?a?surrogate?pair?convert?to?UTF32?first.?*/
if?(ch?>=?UNI_SUR_HIGH_START?&&?ch?<=?UNI_SUR_HIGH_END)?{
/*?If?the?16?bits?following?the?high?surrogate?are?in?the?source?buffer...?*/
if?(*source){
MYUTF32?ch2?=?*source;
/*?If?it‘s?a?low?surrogate?convert?to?UTF32.?*/
if?(ch2?>=?UNI_SUR_LOW_START?&&?ch2?<=?UNI_SUR_LOW_END)?{
ch?=?((ch?-?UNI_SUR_HIGH_START)?<se;
++source;
}
else?if?(flags?==?strictConversion)?{?/*?it‘s?an?unpaired?high?surrogate?*/
--source;?/*?return?to?the?illegal?value?itself?*/
result?=?sourceIllegal;
break;
}
}
else?{?/*?We?don‘t?have?the?16?bits?following?the?high?surrogate.?*/
--source;?/*?return?to?the?high?surrogate?*/
result?=?sourceExhausted;
break;
}
}
else?if?(flags?==?strictConversion)?{
/*?UTF-16?surrogate?values?are?illegal?in?UTF-32?*/
if?(ch?>=?UNI_SUR_LOW_START?&&?ch?<=?UNI_SUR_LOW_END){
--source;?/*?return?to?the?illegal?value?itself?*/
result?=?sourceIllegal;
break;
}
}
/*?Figure?out?how?many?bytes?the?result?will?require?*/
if?(ch? bytesToWrite?=?1;
}
else?if?(ch? bytesToWrite?=?2;
}
else?if?(ch? bytesToWrite?=?3;
}
else?if?(ch? bytesToWrite?=?4;
}
else?{
bytesToWrite?=?3;
ch?=?UNI_REPLACEMENT_CHAR;
}

target?+=?bytesToWrite;
if?(target?>?targetEnd)?{
source?=?oldSource;?/*?Back?up?source?pointer!?*/
target?-=?bytesToWrite;?result?=?targetExhausted;?break;
}
switch?(bytesToWrite)?{?/*?note:?everything?falls?through.?*/
case?4:?*--target?=?(MYUTF8)((ch?|?byteMark)?&?byteMask);?ch?>>=?6;
case?3:?*--target?=?(MYUTF8)((ch?|?byteMark)?&?byteMask);?ch?>>=?6;
case?2:?*--target?=?(MYUTF8)((ch?|?byteMark)?&?byteMask);?ch?>>=?6;
case?1

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????320??2019-01-25?09:32??readMe.txt
?????文件???????16729??2019-01-25?09:17??utfTools.cpp
?????文件????????3762??2019-01-25?09:10??utfTools.h
?????文件???????33628??2019-01-25?09:33??字符編碼.docx

評論

共有 條評論