MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / DetectTextEncoding

Function DetectTextEncoding

Libraries/unrar/filestr.cpp:151–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149
150
151RAR_CHARSET DetectTextEncoding(const byte *Data,size_t DataSize)
152{
153 if (DataSize>3 && Data[0]==0xef && Data[1]==0xbb && Data[2]==0xbf &&
154 IsTextUtf8(Data+3,DataSize-3))
155 return RCH_UTF8;
156
157 bool LittleEndian=DataSize>2 && Data[0]==255 && Data[1]==254;
158 bool BigEndian=DataSize>2 && Data[0]==254 && Data[1]==255;
159
160 if (LittleEndian || BigEndian)
161 for (size_t I=LittleEndian ? 3 : 2;I<DataSize;I+=2)
162 if (Data[I]<32 && Data[I]!='\r' && Data[I]!='\n')
163 return RCH_UNICODE; // High byte in UTF-16 char is found.
164
165 return RCH_DEFAULT;
166}

Callers 1

ReadTextFileFunction · 0.85

Calls 1

IsTextUtf8Function · 0.85

Tested by

no test coverage detected