ttldtor
«Давай заддоним смешанную калчер и мэй закапывать» — Ъ смешанная culture.
я имел в виду, если яхочу вывести числа с разделителями разрядов и деньги с определённым количеством знаков после запятой, то надо будет отрубать какие-нибудь встроенный преобразователи вывода в поток и форматироват ьявно, но это не относится к твоему вопросу и я понимаю проблему
Ioann_
Это UTF16LE
Ioann_
Если не ошибаюсь, конечно
Dr. Friedrich
Wcout это уникод разве ?
В данной реализации — да.
Dr. Friedrich
Это UTF16LE
В этой программе — да. UTF-16 это разве не юникод?
Ioann_
Ну это явно не UTF 8
Dr. Friedrich
Да, совершенно верно, UTF-16 это не UTF-8.
Dr. Friedrich
Просили юникод — нате вам юникод.
Ioann_
А я прошу UTF 8 - так как через него и только него можно представить все что есть на этой планете
Ioann_
Ога, тогда ясно :(
Dr. Friedrich
Ну, на самом деле работает (65001), но вот с вводом в этом режиме у меня постоянные проблемы. Ни разу не видел, чтобы работало нормально.
Ioann_
А вот то что там в строках вводили в 11 - 14 плюсах, позможность писать /u+0x...
Ioann_
Или такого не было ? Если было, то расскажите, что это тогда ?
Dr. Friedrich
А я прошу UTF 8 - так как через него и только него можно представить все что есть на этой планете
Ты написал «А как, собственно работать с Уникодом», поэтому ответ был юникодовый. Про конкретный вид трансформации (UTF-8) был бы другой ответ :)
Ioann_
Согласен, теперь интересуют вопросы выше :)
Square
Wcout это уникод разве ?
Можно я спрошу? А что такое юникод?
Dr. Friedrich
А вот то что там в строках вводили в 11 - 14 плюсах, позможность писать /u+0x...
Да, и синтаксис такой ввели, и ещё u8"" / u16"" литералы ввели. Это всё превращается в char*, если я не путаю (а я могу, ага). Поэтому, хотя это и полезные нововведения в целом, с юникодом на винде они не помогут :(
Ioann_
Можно я спрошу? А что такое юникод?
Это некоторая последовательность байт, которая определяет данный символ
Dr. Friedrich
Последовательность байт — это уже кодировка какая-то.
Ioann_
Ну, как знал, так и ответил, что вам поправить сложно что ли :)?
Dr. Friedrich
У юникода есть несколько кодировок, они называются UTF.
Dr. Friedrich
UTF-8, UTF-16, etc.
Ioann_
Согласен, да - все остальное кодировка декодировка
Dr. Friedrich
Помимо очевидного, это может сломать всякие кривые программы, между прочим. Ну, те самые, заточенные на однобайтовую кодировку.
Square
Недавно обсуждали почему утф8 не панацея. Для хранения он хорош однозначно
Ioann_
UTF-8, UTF-16, etc.
То есть дефакто они переводят что нужно - в одно и тоже значение ?
Square
То есть дефакто они переводят что нужно - в одно и тоже значение ?
Я те там кинул почитать. Можешь статью спольски ещё
Square
Она и на русском есть. За 17 лет актуальности не потеряла
Dr. Friedrich
Представь, что ты пишешь программу, которая спрашивает у пользователя букву. И считывает её в однобайтовый буфер (потому что у нас же однобайтовая кодировка, да?). И вот тут ей внезапно суют кириллическую двухбайтовую «букву» в этот несчастный буфер. И всё превращается в ад.
Ioann_
Не могу найти, то что ты мне кидал :)
Square
Square
Ну гуглится же на раз два
Square
Джоел спольски - что нужно знать про кодировки
Ioann_
thx :)
Square
Вот актуализированная осовремененная версия со ссылкой на оригинал
Square
http://kunststube.net/encoding/
Square
Multibyte vs widechar и вот это вот все
Square
он все еще пишет?
Статье 17 лет :(
Ioann_
Да, я ее даже когда то читал. Но все быстро забывается, если честно :)
Dr. Friedrich
На самом деле, для англоязычной аудитории статья более актуальна, чем для наших. Это же не им приходилось все эти сорок лет разгадывать ребусы из разряда БНОПНЯ.
Vladislav
Статье 17 лет :(
ага. хорошо писал, но подсдулся
Square
Владик чот пишет разгромное ...
Dr. Friedrich
Вангую, что там будет ненависти пост. ...чёрт, нет.
Ioann_
Это некоторая последовательность байт, которая определяет данный символ
Тогда все же, что тут не так ? Уникод он же как раз ставить некоторую последовательност байт - символу :?
Vladislav
юникод - он про другое. он кодирует назначенный символ в >1 октет
Vladislav
не более
Burado
Статье 17 лет :(
Мм, статья-ровесник.
Ioann_
Square
Блэт. Посоны. Давайте уже без гаданий на ромашке
Dr. Friedrich
Юникод каждому «символу» (а это тоже не вполне однозначное понятие, кстати) ставит в соответствие некий код. Этот код можно записать разными последовательностями байт. Начиная с big/little endian (что тоже учитывается), и заканчивая способами записи многобайтовых последовательностей.
Dr. Friedrich
Кстати, а UTF-32 тоже бывает LE/BE? Я про его варианты никогда не слышал.
Vladislav
Я думал этим занимается как раз УТФ 8 или 16
в win исторически принята ucs16 (после 9x), ~== utf16
Dr. Friedrich
Есть ещё одна смешная ремарка (на самом деле, грустная). Микрософт почему-то думает, что «Юникод» — это UTF-16LE :)
Dr. Friedrich
И последовательно у себя применяет такую терминологию.
Matwey
Тогда все же, что тут не так ? Уникод он же как раз ставить некоторую последовательност байт - символу :?
Уникод ставит в соответствие каждому символу число в математическом смысле, а как ты его в байтах выражаешь - это уже другой вопрос
Vladislav
когда history++ в 200x писал с совместимостью от 98 до xp+ всего этого наелся
Ioann_
Хммм... а как писать переносимые програмы с кодировками с винды на никсы ?
Ioann_
Вот в никсах вчар если не ошибаюсь 4 байта
Dr. Friedrich
Хммм... а как писать переносимые програмы с кодировками с винды на никсы ?
Пишешь программу как тебе нужно, а внутри реализуешь слой совместимости.
Ioann_
Тупо все в чарах и хранить ?(я так и делаю собсно)