Constantine
например, телеграм не может переслать U+FFFC как символ
Ioann_
Цифры - цифрами
Ioann_
Constantine
Constantine
на самом деле это не меняет коды цифр
Berkus
U+FFFC OBJECT REPLACEMENT CHARACTER хмм
Constantine
ага
Constantine
а если его ввести в нижнее поле ввода, его ширина по мнению редактора -1 (минус один) пиксель 😆
Constantine
вспоминается IE6, который безумно терялся, если поставить zero width non-breaking space в моноширинный шрифт
Berkus
хех
Ioann_
Вопрос был конкретный, как поменять отображение циферок в локали ?
Berkus
юникод из хард
Constantine
с одной стороны все символы одной ширины, а с другой - этот символ ширины 0
Constantine
в итоге текст прыгать начинает, когда выделяешь
Constantine
из intl.cpl
Ioann_
так у меня не поменялось нифига
Constantine
ты перенастроил обе настройки?
Ioann_
хотя секу
Ioann_
одну только, ща вторую поставлю
Constantine
на правом диалоге надо поменять две настройки
Constantine
обвел же
Constantine
эта настройка влияет на DigitSubstitution и не влияет на коды выводимых цифр
Constantine
так что это не важно в данном вопросе
Constantine
она к рендереру исключительно относится
Constantine
полагаю, что никак в винде
Constantine
разделителя тысяч вполне хватит, чтобы сломать программу за локаль-зависимую запись в JSON
Constantine
см. вот этот пример
Constantine
блин, надо цифры запомнить
Ioann_
Constantine
я же говорю
Ioann_
Если же выводить, как это делаешь ты - то получается, что разделитель есть
Constantine
а у тебя thousands separator где вообще
Ioann_
Returns a wstring with the representation of val. The format used is the same that wprintf would print for the corresponding type:
Constantine
угу, и printf локаль-зависимый
Ioann_
Тогда почему нету пробельного символа ?
Ioann_
Constantine
какого символа?
Ioann_
смотри скриншот и код
Constantine
выведи double
Constantine
ахахаха Notes While narrow strings provide std::snprintf, which makes it possible to determine the required output buffer size, there is no equivalent for wide strings, and in order to determine the buffer size, the program may need to call std::swprintf, check the result value, and reallocate a larger buffer, trying again until successful.
Constantine
не обращал внимание раньше
Ioann_
1.337 1,337 1,337000
Ioann_
вот вывод
Ioann_
Да, локаль зависимо
Constantine
это все фигня, как цифры запомнить?
Ioann_
т.е запомнить ?
Constantine
как меня вообще в детстве научили читать и писать
Constantine
я хочу оставить начертание цифр
Constantine
чтобы китайская разведка не могла быстро определить время по часам на моем ПК
Constantine
и не могу запомнить 10 значков
Ioann_
ну у меня цифра ассоциируются с чем то
Ioann_
типа двойка это лебедь
Ioann_
единица цапля
Constantine
вроде запомнил 0-3, 6, 8 и 9
Constantine
остальные пока путаю
Matwey
@Ioann_V а 34 с чем у тебя ассоциируется?
Ioann_
ну мы про цифры говорили
Matwey
Ну я на всякий случай уточнил
Constantine
Matwey
это номер из списка?)
В.Пелевин - Числа
Constantine
а, я правильно понял
Constantine
все время забываю это число)
Constantine
В.Пелевин - Числа
не думаю, что это - исключение
Ioann_
ну хорошо, что не 42 - а то я как то не очень люблю этот фантастический рассказ
Constantine
ну правило 34 это template <typename T> constexpr bool has_porn_of(T const&) noexcept { return true; }
Ioann_
так, пацаны, что с локалями то делать будем ?
Constantine
на джаву переходить
Constantine
разумеется выход простой - никогда не дергать плюсовую локаль и все делать внешними библиотеками
Ioann_
Но вот так не покатит : std::wostringstream ss; ss.imbue(std::locale("C")); ?
Constantine
покатит глобальная локаль C
Constantine
и _snwprintf
Constantine
а,не, хак с размером буфера через digits10() + 2
Ioann_
А чо сразу хак то ? Если все по страндарту - хаков нету
Constantine
не очевидно, что стандарт гарантирует, я не проверял
Constantine
надо проверить, что стандарт гарантирует, что диапазон значений целого типа - отрезок
Constantine
наверное, гарантирует такое для unsigned