MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / EncodeAndAppendUTF8

Function EncodeAndAppendUTF8

common/StringUtil.cpp:362–392  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

360 }
361
362 void EncodeAndAppendUTF8(std::string& s, char32_t ch)
363 {
364 if (ch <= 0x7F)
365 {
366 s.push_back(static_cast<char>(static_cast<u8>(ch)));
367 }
368 else if (ch <= 0x07FF)
369 {
370 s.push_back(static_cast<char>(static_cast<u8>(0xc0 | static_cast<u8>((ch >> 6) & 0x1f))));
371 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>((ch & 0x3f)))));
372 }
373 else if (ch <= 0xFFFF)
374 {
375 s.push_back(static_cast<char>(static_cast<u8>(0xe0 | static_cast<u8>(((ch >> 12) & 0x0f)))));
376 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>(((ch >> 6) & 0x3f)))));
377 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>((ch & 0x3f)))));
378 }
379 else if (ch <= 0x10FFFF)
380 {
381 s.push_back(static_cast<char>(static_cast<u8>(0xf0 | static_cast<u8>(((ch >> 18) & 0x07)))));
382 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>(((ch >> 12) & 0x3f)))));
383 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>(((ch >> 6) & 0x3f)))));
384 s.push_back(static_cast<char>(static_cast<u8>(0x80 | static_cast<u8>((ch & 0x3f)))));
385 }
386 else
387 {
388 s.push_back(static_cast<char>(0xefu));
389 s.push_back(static_cast<char>(0xbfu));
390 s.push_back(static_cast<char>(0xbdu));
391 }
392 }
393
394 size_t DecodeUTF8(const void* bytes, size_t length, char32_t* ch)
395 {

Callers 2

StripIconCharactersMethod · 0.85
SanitizeFileNameMethod · 0.85

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected