diff --git a/stl/src/format.cpp b/stl/src/format.cpp index 67a91356a9d..d639183985a 100644 --- a/stl/src/format.cpp +++ b/stl/src/format.cpp @@ -31,7 +31,7 @@ extern "C" [[nodiscard]] __std_win_error __stdcall __std_get_cvt( break; } - for (unsigned char _First = _Info.LeadByte[_Idx], _Last = _Info.LeadByte[_Idx + 1]; _First != _Last; ++_First) { + for (unsigned int _First = _Info.LeadByte[_Idx], _Last = _Info.LeadByte[_Idx + 1]; _First <= _Last; ++_First) { _Pcvt->_Isleadbyte[_First >> 3] |= 1u << (_First & 0b111u); } } diff --git a/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/test.cpp b/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/test.cpp index b01f72fae10..44ac16c52e4 100644 --- a/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/test.cpp +++ b/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/test.cpp @@ -15,6 +15,8 @@ void test_escaped_string() { assert(format("{:?}", "\xEB!") == "\"\\x{eb}!\""); assert(format("{:?}", "\x81\x40\x40\x81") == "\"\\u{3000}\x40\\x{81}\""); + + assert(format("{:?}", "\xFC\x4B") == "\"\u9ED1\""); } template