https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119593
Bug ID: 119593 Summary: Format width is not correctly handled for unicode characters Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: tkaminsk at gcc dot gnu.org Target Milestone: --- The following line, produce string with two '+' of padding. std::format(L"{:+<3}", L'\U0001f921'); // https://godbolt.org/z/b9Mr73Pe5 However as the '\U0001f921' has estimated width 2, only one `+` should be produced. This only happens for wchar_t, as single char can represent code points in ASCII range (<= 0x7f) that all have estimated width of 1.