C ++ Argv со значениями UTF-8 неверна в программеC++

Программы на C++. Форум разработчиков
Anonymous
C ++ Argv со значениями UTF-8 неверна в программе

Сообщение Anonymous »

Я использую Windows 11. У меня есть программа "hello.exe" < /p>

Код: Выделить всё

#include 

int main(int argc, char* argv[])
{
for (int i = 0; i < argc; i++)
{
std::cout 
Hello.exe う
< /code>
Тогда ничего не напечатано. И, как ни странно, содержание этого персонажа, записанный в ARGV, составляет 3F 
. Но фактическое кодирование этого символа должно быть E3 81 86 .
Что я попробовал
(1) Однако, если я напрямую печатаю этот символ в своем коде, кодирование было бы правильным в памяти, и символ может быть напечатан на stdout.

Код: Выделить всё

SetConsoleOutputCP(CP_UTF8);
printf("う")
(2) Я также пытался использовать Wmain вместо Main , также не может быть распечатана. Значение, хранящее в ARGV, составляет 46 30

Код: Выделить всё

#include 

int wmain(int argc, wchar_t** argv)
{
for (int i = 0; i < argc; i++)
{
std::wcout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79668459/c-argv-with-utf-8-values-are-incorrect-in-the-program[/url]

Вернуться в «C++»