Я видел другие сообщения, которые не дают четких ответов, основной ответ, который я вижу повсюду, — это либо _setmode, либо SetConsoleOutputCP, но они оба выглядят так, будто меняют настройку, которая не будет изменена позже, что меня не привлекает. Я думаю, что если что-то за пределами программы будет изменено, это следует изменить обратно, и я не могу понять, как это сделать, если оно по-прежнему является кроссплатформенным и не очень сложным для такой маленькой вещи. Хотя я могу быть тупым и сбитым с толку, может быть, это не какая-то постоянная вещь, которую вам нужно изменить самостоятельно, например «chcp 65001», и если вы хотите, чтобы ваш текст вернулся к исходному состоянию, прежде чем вам нужно будет запустить «chcp 850» (в моем случае), чтобы вернуть его к тексту по умолчанию...
Я использую C++14 (я очень новичок в C++, я в основном использую Python и я переключаю его), и всякий раз, когда я попробуйте вывести на консоль символ Юникода 8 (по крайней мере, я думаю, что это Юникод 8), в моем случае это "▀", вместо получения этого символа я получаю "ÔûÇ", все это исправляется, когда я меняю "Активную кодовую страницу" для моей консоли на 65001, но это немного странно, что всем, кто запускает программу, также необходимо изменить свою "Активную кодовую страницу", и даже если они это сделают, они, вероятно, захотят изменить ее обратно, потому что иногда перед его изменением оно другое (в моем случае значение по умолчанию — 850).
Я пришел к странной вещи: если я получаю ввод от пользователя с помощью cin, устанавливаю переменную для ввода, а затем заставляю пользователя вводить «▀», то всякий раз, когда я вывожу ввод пользователя на консоль, это действительно работает! После некоторого копания я обнаружил, что для переменной установлено значение «\xdf», поэтому вместо того, чтобы каждый раз получать входные данные, я мог просто выводить «\xdf» на консоль, и «▀» появлялось правильно. Но потом я понял, что всё наоборот, на этот раз, если бы для «Активной кодовой страницы» было установлено значение 65001 (что было решением раньше), теперь это НЕ БУДЕТ работать, теперь там ничего не появится, и на этот раз это было ИСПРАВЛЕНО, когда я использовал 850 (что было проблемой раньше)
Я просто не привык к такого рода вещам при программировании на Python...
Я действительно хочу все это быть кроссплатформенным и работать со всеми терминалами ИЗВИНИТЕ ЗА МОЙ ГЛУБОКИЙ ВОПРОС!!!
[b]Я видел другие сообщения, которые не дают четких ответов, основной ответ, который я вижу повсюду, — это либо _setmode, либо SetConsoleOutputCP, но они оба выглядят так, будто меняют настройку, которая не будет изменена позже, что меня не привлекает. Я думаю, что если что-то за пределами программы будет изменено, это следует изменить обратно, и я не могу понять, как это сделать, если оно по-прежнему является кроссплатформенным и не очень сложным для такой маленькой вещи. Хотя я могу быть тупым и сбитым с толку, может быть, это не какая-то постоянная вещь, которую вам нужно изменить самостоятельно, например «chcp 65001», и если вы хотите, чтобы ваш текст вернулся к исходному состоянию, прежде чем вам нужно будет запустить «chcp 850» (в моем случае), чтобы вернуть его к тексту по умолчанию...[/b] Я использую C++14 (я очень новичок в C++, я в основном использую Python и я переключаю его), и всякий раз, когда я попробуйте вывести на консоль символ Юникода 8 (по крайней мере, я думаю, что это Юникод 8), в моем случае это "▀", вместо получения этого символа я получаю "ÔûÇ", все это исправляется, когда я меняю "Активную кодовую страницу" для моей консоли на 65001, но это немного странно, что всем, кто запускает программу, также необходимо изменить свою "Активную кодовую страницу", и даже если они это сделают, они, вероятно, захотят изменить ее обратно, потому что иногда перед его изменением оно другое (в моем случае значение по умолчанию — 850). Я пришел к странной вещи: если я получаю ввод от пользователя с помощью cin, устанавливаю переменную для ввода, а затем заставляю пользователя вводить «▀», то всякий раз, когда я вывожу ввод пользователя на консоль, это действительно работает! После некоторого копания я обнаружил, что для переменной установлено значение «\xdf», поэтому вместо того, чтобы каждый раз получать входные данные, я мог просто выводить «\xdf» на консоль, и «▀» появлялось правильно. Но потом я понял, что всё наоборот, на этот раз, если бы для «Активной кодовой страницы» было установлено значение 65001 (что было решением раньше), теперь это НЕ БУДЕТ работать, теперь там ничего не появится, и на этот раз это было ИСПРАВЛЕНО, когда я использовал 850 (что было проблемой раньше) Я просто не привык к такого рода вещам при программировании на Python... Я действительно хочу все это быть кроссплатформенным и работать со всеми терминалами :( [b]ИЗВИНИТЕ ЗА МОЙ ГЛУБОКИЙ ВОПРОС!!![/b]