#utf16 — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #utf16, aggregated by home.social.
-
UTF-16 reintroduced the old byte split bugs on two byte quantities.
#unicode #utf16
https://george.mand.is/2026/05/my-favorite-bugs-invalid-surrogate-pairs/ -
UTF-16 reintroduced the old byte split bugs on two byte quantities.
#unicode #utf16
https://george.mand.is/2026/05/my-favorite-bugs-invalid-surrogate-pairs/ -
UTF-16 reintroduced the old byte split bugs on two byte quantities.
#unicode #utf16
https://george.mand.is/2026/05/my-favorite-bugs-invalid-surrogate-pairs/ -
UTF-16 reintroduced the old byte split bugs on two byte quantities.
#unicode #utf16
https://george.mand.is/2026/05/my-favorite-bugs-invalid-surrogate-pairs/ -
UTF-16 reintroduced the old byte split bugs on two byte quantities.
#unicode #utf16
https://george.mand.is/2026/05/my-favorite-bugs-invalid-surrogate-pairs/ -
Как (не) перевернуть строку, или Ох, уж этот Unicode
Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Александр Ланцов — ведущий разработчик Мир Plat.Form. Если вы больше любите смотреть видео, то смотрите запись доклада на YouTube или VK Видео . Читать далее 🔍
https://habr.com/ru/companies/nspk/articles/1024668/
#java #unicode #utf8 #utf16 #кодировки #обработка_строк #emoji #суррогатные_пары #графемные_кластеры
-
Как (не) перевернуть строку, или Ох, уж этот Unicode
Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Александр Ланцов — ведущий разработчик Мир Plat.Form. Если вы больше любите смотреть видео, то смотрите запись доклада на YouTube или VK Видео . Читать далее 🔍
https://habr.com/ru/companies/nspk/articles/1024668/
#java #unicode #utf8 #utf16 #кодировки #обработка_строк #emoji #суррогатные_пары #графемные_кластеры
-
Как (не) перевернуть строку, или Ох, уж этот Unicode
Это текстовая версия доклада с Java Rock Star Meetup, с которым выступал Александр Ланцов — ведущий разработчик Мир Plat.Form. Если вы больше любите смотреть видео, то смотрите запись доклада на YouTube или VK Видео . Читать далее 🔍
https://habr.com/ru/companies/nspk/articles/1024668/
#java #unicode #utf8 #utf16 #кодировки #обработка_строк #emoji #суррогатные_пары #графемные_кластеры
-
#Development #Comparisons
Base64 is fast now, actually · The surprising speed of native base64 encoding https://ilo.im/16bzcf_____
#Encoding #Base64 #UTF16 #JavaScript #Browsers #NodeJS #WebPerf #WebDev #Frontend #Backend -
#Development #Comparisons
Base64 is fast now, actually · The surprising speed of native base64 encoding https://ilo.im/16bzcf_____
#Encoding #Base64 #UTF16 #JavaScript #Browsers #NodeJS #WebPerf #WebDev #Frontend #Backend -
#Development #Comparisons
Base64 is fast now, actually · The surprising speed of native base64 encoding https://ilo.im/16bzcf_____
#Encoding #Base64 #UTF16 #JavaScript #Browsers #NodeJS #WebPerf #WebDev #Frontend #Backend -
#Development #Comparisons
Base64 is fast now, actually · The surprising speed of native base64 encoding https://ilo.im/16bzcf_____
#Encoding #Base64 #UTF16 #JavaScript #Browsers #NodeJS #WebPerf #WebDev #Frontend #Backend -
"Why does "👩🏾🌾" have a length of 7 in #JavaScript?"
A very nice analyse!
#utf16 #unicode
by @EvanHahn
https://evanhahn.com/javascript-string-lengths/ -
"Why does "👩🏾🌾" have a length of 7 in #JavaScript?"
A very nice analyse!
#utf16 #unicode
by @EvanHahn
https://evanhahn.com/javascript-string-lengths/ -
"Why does "👩🏾🌾" have a length of 7 in #JavaScript?"
A very nice analyse!
#utf16 #unicode
by @EvanHahn
https://evanhahn.com/javascript-string-lengths/ -
"Why does "👩🏾🌾" have a length of 7 in #JavaScript?"
A very nice analyse!
#utf16 #unicode
by @EvanHahn
https://evanhahn.com/javascript-string-lengths/ -
"Why does "👩🏾🌾" have a length of 7 in #JavaScript?"
A very nice analyse!
#utf16 #unicode
by @EvanHahn
https://evanhahn.com/javascript-string-lengths/ -
Ну всё, пора закапывать UTF-8
Здравствуйте, меня зовут Дмитрий Карловский и я... серийный убийца устоявшихся стандартов. Сегодня я выследил и нанёс критический урон UTF-8. И сейчас я расскажу, как я его переиграл и уничтожил новым стандартом кодирования текста — Unicode Compact Format . No, God! Please, No, NO!
https://habr.com/ru/articles/983042/
#utf8 #utf16 #utf32 #ucs2 #ucs4 #scsu #bocu1 #utfc #ucf #$mol
-
Ну всё, пора закапывать UTF-8
Здравствуйте, меня зовут Дмитрий Карловский и я... серийный убийца устоявшихся стандартов. Сегодня я выследил и нанёс критический урон UTF-8. И сейчас я расскажу, как я его переиграл и уничтожил новым стандартом кодирования текста — Unicode Compact Format . No, God! Please, No, NO!
https://habr.com/ru/articles/983042/
#utf8 #utf16 #utf32 #ucs2 #ucs4 #scsu #bocu1 #utfc #ucf #$mol
-
Ну всё, пора закапывать UTF-8
Здравствуйте, меня зовут Дмитрий Карловский и я... серийный убийца устоявшихся стандартов. Сегодня я выследил и нанёс критический урон UTF-8. И сейчас я расскажу, как я его переиграл и уничтожил новым стандартом кодирования текста — Unicode Compact Format . No, God! Please, No, NO!
https://habr.com/ru/articles/983042/
#utf8 #utf16 #utf32 #ucs2 #ucs4 #scsu #bocu1 #utfc #ucf #$mol
-
The ancient symbol of Chaos is not represented in Unicode and that makes me mad.
Yes, for the symbol of Law We have ↑, but there is no symbol in which eight arrows all point from a common origin, each at one of the cardinal or intercardinal compass directions.
The best we have is ☸ but it's not made of arrows, is too circley, and is already taken by some stupid supposedly """ancient""" religion.
BAH/Humbug!
#arioch #chao #chaos #elric #fiction #michaelmoorcock #moorcock #pulp #pulpfiction #sacredchao #tuches #tukhes #tus #ucs #unicode #universalcodedcharacterset #utf16 #utf32 #utf64 #utf8 #wtf69
-
[Перевод] Освоение Unicode в Java: создаём на Quarkus REST API, готовый к глобальной аудитории
В этом руководстве мы разберем непонятности вокруг Unicode и узнаем, как строить надёжные, интернациональные Java-приложения. Разберём теорию, укажем на подводные камни, а затем соберём «Глобальный сервис приветствий» на Quarkus, который переживёт весь хаос реального текста. К концу статьи вы разберётесь с тем, – как устроен Unicode и как Java на самом деле хранит текст; – почему длина строки и перебор символов сложнее, чем кажется; – как нормализация предотвращает неприятные несоответствия; – как настроить REST-сервис и базу данных для безопасной работы с Unicode. Unicode без боли
https://habr.com/ru/companies/otus/articles/956720/
#unicode #Quarkus #Java #UTF8 #UTF16 #графемные_кластеры #нормализация #nfc #сортировка_по_локали
-
[Перевод] Освоение Unicode в Java: создаём на Quarkus REST API, готовый к глобальной аудитории
В этом руководстве мы разберем непонятности вокруг Unicode и узнаем, как строить надёжные, интернациональные Java-приложения. Разберём теорию, укажем на подводные камни, а затем соберём «Глобальный сервис приветствий» на Quarkus, который переживёт весь хаос реального текста. К концу статьи вы разберётесь с тем, – как устроен Unicode и как Java на самом деле хранит текст; – почему длина строки и перебор символов сложнее, чем кажется; – как нормализация предотвращает неприятные несоответствия; – как настроить REST-сервис и базу данных для безопасной работы с Unicode. Unicode без боли
https://habr.com/ru/companies/otus/articles/956720/
#unicode #Quarkus #Java #UTF8 #UTF16 #графемные_кластеры #нормализация #nfc #сортировка_по_локали
-
[Перевод] Освоение Unicode в Java: создаём на Quarkus REST API, готовый к глобальной аудитории
В этом руководстве мы разберем непонятности вокруг Unicode и узнаем, как строить надёжные, интернациональные Java-приложения. Разберём теорию, укажем на подводные камни, а затем соберём «Глобальный сервис приветствий» на Quarkus, который переживёт весь хаос реального текста. К концу статьи вы разберётесь с тем, – как устроен Unicode и как Java на самом деле хранит текст; – почему длина строки и перебор символов сложнее, чем кажется; – как нормализация предотвращает неприятные несоответствия; – как настроить REST-сервис и базу данных для безопасной работы с Unicode. Unicode без боли
https://habr.com/ru/companies/otus/articles/956720/
#unicode #Quarkus #Java #UTF8 #UTF16 #графемные_кластеры #нормализация #nfc #сортировка_по_локали
-
#Development #Techniques
Text lengths with ‘Intl.Segmenter’ API · Human-friendly character counting in JavaScript https://ilo.im/166lco_____
#Characters IntlSegmenter #API #JavaScript #Unicode #UTF8 #UTF16 #Browser #WebDev #Frontend -
#Development #Techniques
Text lengths with ‘Intl.Segmenter’ API · Human-friendly character counting in JavaScript https://ilo.im/166lco_____
#Characters IntlSegmenter #API #JavaScript #Unicode #UTF8 #UTF16 #Browser #WebDev #Frontend -
#Development #Techniques
Text lengths with ‘Intl.Segmenter’ API · Human-friendly character counting in JavaScript https://ilo.im/166lco_____
#Characters IntlSegmenter #API #JavaScript #Unicode #UTF8 #UTF16 #Browser #WebDev #Frontend -
#Development #Techniques
Text lengths with ‘Intl.Segmenter’ API · Human-friendly character counting in JavaScript https://ilo.im/166lco_____
#Characters IntlSegmenter #API #JavaScript #Unicode #UTF8 #UTF16 #Browser #WebDev #Frontend -
Всё же пришлось поизучать юникод.
Два четырёхзначных кодпоинта могут идти в суррогатной паре UTF-16, тогда декодировать их можно только вместе (там какой-то алгоритм с битовыми операциями).
То есть мне нужно обрабатывать такую ситуацию, когда в буфер попал первый кодпоинт из пары, без второго, и слать декодеру часть буфера до начала этой сломанной пары.
Иначе декодер выдаст не то. Склеивать полученные байты не поможет.Пример:
\u1F4AF— это эмоджи [💯]
В жсоне для кодирования юникода применяется UTF-16-BE, видимо чтобы количество цифр в кодпоинте всегда было 4 для удобства парсинга (удобства!! спасибо, блин).
Получаем"\ud83d\udcaf".\ud83d— первый символ в суррогатной паре, leading UTF-16 surrogate, его можно определить по диапазону от0xD800до0xDBFFвключительно.\udcaf— второй символ в паре, trailing UTF-16 surrogate, диапазон от0xDC00до0xDFFFвключительно.Если парсер смог прочитать только первый кодпоинт 0xD83D и дошёл до конца буфера, значит, trailing surrogate мы не считали, декодировать кодпоинт не получится. Вернём его обратно к вызывающему (см. переменную
leftovers), чтобы он добавил кривой жсон-эскейп с этим кодпоинтом в буфер в следующий раз, когда будет читать байты дальше. А щас декодируем только часть строки до\ud83d, не захватывая этот эскейп.Багфикс:
https://git.dc09.ru/DarkCat09/proxishot/commit/e4873223f5Разговор с самим собой:
https://git.dc09.ru/DarkCat09/proxishot/issues/1 -
Всё же пришлось поизучать юникод.
Два четырёхзначных кодпоинта могут идти в суррогатной паре UTF-16, тогда декодировать их можно только вместе (там какой-то алгоритм с битовыми операциями).
То есть мне нужно обрабатывать такую ситуацию, когда в буфер попал первый кодпоинт из пары, без второго, и слать декодеру часть буфера до начала этой сломанной пары.
Иначе декодер выдаст не то. Склеивать полученные байты не поможет.Пример:
\u1F4AF— это эмоджи [💯]
В жсоне для кодирования юникода применяется UTF-16-BE, видимо чтобы количество цифр в кодпоинте всегда было 4 для удобства парсинга (удобства!! спасибо, блин).
Получаем"\ud83d\udcaf".\ud83d— первый символ в суррогатной паре, leading UTF-16 surrogate, его можно определить по диапазону от0xD800до0xDBFFвключительно.\udcaf— второй символ в паре, trailing UTF-16 surrogate, диапазон от0xDC00до0xDFFFвключительно.Если парсер смог прочитать только первый кодпоинт 0xD83D и дошёл до конца буфера, значит, trailing surrogate мы не считали, декодировать кодпоинт не получится. Вернём его обратно к вызывающему (см. переменную
leftovers), чтобы он добавил кривой жсон-эскейп с этим кодпоинтом в буфер в следующий раз, когда будет читать байты дальше. А щас декодируем только часть строки до\ud83d, не захватывая этот эскейп.Багфикс:
https://git.dc09.ru/DarkCat09/proxishot/commit/e4873223f5Разговор с самим собой:
https://git.dc09.ru/DarkCat09/proxishot/issues/1 -
The grumpy serialisation format
-
The grumpy serialisation format
-
The grumpy serialisation format
-
The grumpy serialisation format
-
The grumpy serialisation format
-
Imutin kaikki #Facebook'in julkaisuni – ainakin jos #Meta'a uskotaan. Pyysin #JSON-muodossa toivossa, että tulisi sutjakammin. Hieman ongelmia aiheutti JSONin koodaus: merkkijonot ovat validia #UTF8:aa mutta JSON ilmeisesti olettaa #UTF16:n, joten vaaditaan mukamuunnos eestaas; apua löytyi #StackOverflow’sta. Aikaleimat sentään olivat standardi-#POSIX’ia.
En tiedä, kuinka täydellinen ”arkisto” on, mutta ainakin jotakin saisi talteen, kun lähtee lätkimään. #some #atkjuttuja
-
Imutin kaikki #Facebook'in julkaisuni – ainakin jos #Meta'a uskotaan. Pyysin #JSON-muodossa toivossa, että tulisi sutjakammin. Hieman ongelmia aiheutti JSONin koodaus: merkkijonot ovat validia #UTF8:aa mutta JSON ilmeisesti olettaa #UTF16:n, joten vaaditaan mukamuunnos eestaas; apua löytyi #StackOverflow’sta. Aikaleimat sentään olivat standardi-#POSIX’ia.
En tiedä, kuinka täydellinen ”arkisto” on, mutta ainakin jotakin saisi talteen, kun lähtee lätkimään. #some #atkjuttuja
-
Imutin kaikki #Facebook'in julkaisuni – ainakin jos #Meta'a uskotaan. Pyysin #JSON-muodossa toivossa, että tulisi sutjakammin. Hieman ongelmia aiheutti JSONin koodaus: merkkijonot ovat validia #UTF8:aa mutta JSON ilmeisesti olettaa #UTF16:n, joten vaaditaan mukamuunnos eestaas; apua löytyi #StackOverflow’sta. Aikaleimat sentään olivat standardi-#POSIX’ia.
En tiedä, kuinka täydellinen ”arkisto” on, mutta ainakin jotakin saisi talteen, kun lähtee lätkimään. #some #atkjuttuja
-
Imutin kaikki #Facebook'in julkaisuni – ainakin jos #Meta'a uskotaan. Pyysin #JSON-muodossa toivossa, että tulisi sutjakammin. Hieman ongelmia aiheutti JSONin koodaus: merkkijonot ovat validia #UTF8:aa mutta JSON ilmeisesti olettaa #UTF16:n, joten vaaditaan mukamuunnos eestaas; apua löytyi #StackOverflow’sta. Aikaleimat sentään olivat standardi-#POSIX’ia.
En tiedä, kuinka täydellinen ”arkisto” on, mutta ainakin jotakin saisi talteen, kun lähtee lätkimään. #some #atkjuttuja
-
Imutin kaikki #Facebook'in julkaisuni – ainakin jos #Meta'a uskotaan. Pyysin #JSON-muodossa toivossa, että tulisi sutjakammin. Hieman ongelmia aiheutti JSONin koodaus: merkkijonot ovat validia #UTF8:aa mutta JSON ilmeisesti olettaa #UTF16:n, joten vaaditaan mukamuunnos eestaas; apua löytyi #StackOverflow’sta. Aikaleimat sentään olivat standardi-#POSIX’ia.
En tiedä, kuinka täydellinen ”arkisto” on, mutta ainakin jotakin saisi talteen, kun lähtee lätkimään. #some #atkjuttuja
-
LibreOffice writer is rendering the character correctly :neofox_woozy:
#weather #icon #symbol #LibreOffice #LibreOfficeWriter #typography #utf #utf16 #utf32 -
[Перевод] Нельзя предполагать, что все используют UTF-8
Как вычислять кодировку при помощи статистики Люди говорят на бесчисленном количестве разных языков. Эти языки не только несовместимы между собой, но и представляют огромную трудность при транспиляции в среде исполнения. К сожалению, все попытки стандартизации провалились. По крайней мере, в таком положении вещей есть, кого винить: Бога. Ведь именно он вынудил человечество говорить на разных языках из-за древнего спора о строительстве объекта недвижимости . Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры . И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
https://habr.com/ru/companies/ruvds/articles/811811/
#ruvds_переводы #unicode #кодировки_текста #win1252 #koi8 #utf8 #utf16 #определение_кодировок
-
[Перевод] Нельзя предполагать, что все используют UTF-8
Как вычислять кодировку при помощи статистики Люди говорят на бесчисленном количестве разных языков. Эти языки не только несовместимы между собой, но и представляют огромную трудность при транспиляции в среде исполнения. К сожалению, все попытки стандартизации провалились. По крайней мере, в таком положении вещей есть, кого винить: Бога. Ведь именно он вынудил человечество говорить на разных языках из-за древнего спора о строительстве объекта недвижимости . Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры . И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
https://habr.com/ru/companies/ruvds/articles/811811/
#ruvds_переводы #unicode #кодировки_текста #win1252 #koi8 #utf8 #utf16 #определение_кодировок
-
[Перевод] Нельзя предполагать, что все используют UTF-8
Как вычислять кодировку при помощи статистики Люди говорят на бесчисленном количестве разных языков. Эти языки не только несовместимы между собой, но и представляют огромную трудность при транспиляции в среде исполнения. К сожалению, все попытки стандартизации провалились. По крайней мере, в таком положении вещей есть, кого винить: Бога. Ведь именно он вынудил человечество говорить на разных языках из-за древнего спора о строительстве объекта недвижимости . Однако человечество может винить себя за то, что сложности в общении испытывают компьютеры . И одна из самых больших проблем одновременно является самой простой: компьютеры не договорились о том, как записывать буквы двоичным кодом.
https://habr.com/ru/companies/ruvds/articles/811811/
#ruvds_переводы #unicode #кодировки_текста #win1252 #koi8 #utf8 #utf16 #определение_кодировок
-
Just released dos2ansi v0.4, with lots of #DOS #codepage s supported and a testmode to display them.
The next nice feature would be to use the actual terminal capabilities if output goes there. Very simple on *nix-like systems (#Linux, #FreeBSD, ...), just link #curses and use the termcap functions.
Thinking about #Windows again, either I keep relying on #UTF8 support (since #win7 IIRC? and still a bit buggy) and #ANSI sequences support (since #win10) .... OR I attempt to use the native #Console #API there (using special functions to write in #UTF16 and other special functions to set colors, which would require a major refactoring first 🙄)
-
Just released dos2ansi v0.4, with lots of #DOS #codepage s supported and a testmode to display them.
The next nice feature would be to use the actual terminal capabilities if output goes there. Very simple on *nix-like systems (#Linux, #FreeBSD, ...), just link #curses and use the termcap functions.
Thinking about #Windows again, either I keep relying on #UTF8 support (since #win7 IIRC? and still a bit buggy) and #ANSI sequences support (since #win10) .... OR I attempt to use the native #Console #API there (using special functions to write in #UTF16 and other special functions to set colors, which would require a major refactoring first 🙄)
-
Just released dos2ansi v0.4, with lots of #DOS #codepage s supported and a testmode to display them.
The next nice feature would be to use the actual terminal capabilities if output goes there. Very simple on *nix-like systems (#Linux, #FreeBSD, ...), just link #curses and use the termcap functions.
Thinking about #Windows again, either I keep relying on #UTF8 support (since #win7 IIRC? and still a bit buggy) and #ANSI sequences support (since #win10) .... OR I attempt to use the native #Console #API there (using special functions to write in #UTF16 and other special functions to set colors, which would require a major refactoring first 🙄)
-
Just released dos2ansi v0.4, with lots of #DOS #codepage s supported and a testmode to display them.
The next nice feature would be to use the actual terminal capabilities if output goes there. Very simple on *nix-like systems (#Linux, #FreeBSD, ...), just link #curses and use the termcap functions.
Thinking about #Windows again, either I keep relying on #UTF8 support (since #win7 IIRC? and still a bit buggy) and #ANSI sequences support (since #win10) .... OR I attempt to use the native #Console #API there (using special functions to write in #UTF16 and other special functions to set colors, which would require a major refactoring first 🙄)
-
Just released dos2ansi v0.4, with lots of #DOS #codepage s supported and a testmode to display them.
The next nice feature would be to use the actual terminal capabilities if output goes there. Very simple on *nix-like systems (#Linux, #FreeBSD, ...), just link #curses and use the termcap functions.
Thinking about #Windows again, either I keep relying on #UTF8 support (since #win7 IIRC? and still a bit buggy) and #ANSI sequences support (since #win10) .... OR I attempt to use the native #Console #API there (using special functions to write in #UTF16 and other special functions to set colors, which would require a major refactoring first 🙄)
-
New pre-release of dos2ansi: v0.2
* Works on #Windows, win32 binary (cross-compiled on #FreeBSD) attached
* Selectable input #codepage (so far only #cp437, #cp850 and #cp858)
* Selectable output format, #utf8, #utf16 or #utf16le, with or without #BOMStill a few things to add, e.g. use #termcap/#terminfo or Windows Console API for "color output" when applicable ... we will see 😎
-
New pre-release of dos2ansi: v0.2
* Works on #Windows, win32 binary (cross-compiled on #FreeBSD) attached
* Selectable input #codepage (so far only #cp437, #cp850 and #cp858)
* Selectable output format, #utf8, #utf16 or #utf16le, with or without #BOMStill a few things to add, e.g. use #termcap/#terminfo or Windows Console API for "color output" when applicable ... we will see 😎
-
New pre-release of dos2ansi: v0.2
* Works on #Windows, win32 binary (cross-compiled on #FreeBSD) attached
* Selectable input #codepage (so far only #cp437, #cp850 and #cp858)
* Selectable output format, #utf8, #utf16 or #utf16le, with or without #BOMStill a few things to add, e.g. use #termcap/#terminfo or Windows Console API for "color output" when applicable ... we will see 😎
-
New pre-release of dos2ansi: v0.2
* Works on #Windows, win32 binary (cross-compiled on #FreeBSD) attached
* Selectable input #codepage (so far only #cp437, #cp850 and #cp858)
* Selectable output format, #utf8, #utf16 or #utf16le, with or without #BOMStill a few things to add, e.g. use #termcap/#terminfo or Windows Console API for "color output" when applicable ... we will see 😎
-
New pre-release of dos2ansi: v0.2
* Works on #Windows, win32 binary (cross-compiled on #FreeBSD) attached
* Selectable input #codepage (so far only #cp437, #cp850 and #cp858)
* Selectable output format, #utf8, #utf16 or #utf16le, with or without #BOMStill a few things to add, e.g. use #termcap/#terminfo or Windows Console API for "color output" when applicable ... we will see 😎
-
@wader I had a quick look at your code now and see you're already "handling" this using wmain() and doing the conversion. So, this seems to be a bit mysterious.
Is all your output #utf8? Then adding SetConsoleOutputCP(CP_UTF8); should fix output for anyone without requiring them to use chcp first, but I don't see why specifically argv values continue to have a problem. It probably needs some experimentation 😞
Text encoding on #Windows is so borked because they jumped on #Unicode early using #UCS2 and now they need to handle everything in #UTF16 stored in 16bit wide wchar_t ... and also want to remain compatible with any older crap ... 🙈