Как написать юникодный символ фарси на С++ в консоли ms-dos?

Как написать символ Юникода на фарси в С++ в ms-dos?

cout‹‹"Helo world"‹‹"سلام جهان";


person Samiey Mehdi    schedule 30.01.2010    source источник
comment
Вы имеете в виду "как" вместо "кто"?   -  person Tatu Ulmanen    schedule 30.01.2010
comment
Вы действительно имеете в виду в MS-Dos или вы имеете в виду командную строку в современной версии Windows?   -  person John Carter    schedule 30.01.2010


Ответы (3)


Вам нужно преобразовать строку в правильную кодовую страницу. Кодовые страницы MS-DOS называются как CP437, где за CP следуют три цифры. Обратите внимание, что обычно может отображаться менее 256 различных символов, поэтому многие символы Unicode просто не могут отображаться в текстовом режиме.

person Tronic    schedule 30.01.2010
comment
CP708 — это арабская кодовая страница в MS-DOS. См. msdn.microsoft.com/en-us/library/cc195051.aspx полный список от Microsoft. - person David; 31.01.2010

вы можете использовать wchar_t вместо char.

и вы также должны использовать wcout вместо cout.

если ваша консоль поддерживает юникод, это сработает. Другим способом для иранцев было программное обеспечение под названием «vegaf», но оно было много лет назад, и я его забыл.

person Behnam Safari    schedule 01.02.2012

person    schedule
comment
Не отвечает на вопрос: это пишет совершенно разные символы: P - person Thomas; 30.01.2010
comment
@Thomas: Но если только у вас полностью не умер мозг (надеюсь, это верно не для всех программистов). Возможность изменить вышеописанную программу для распечатки разных символов будет (как бы это выразиться) Коса мертвая вырезать и вставить. Все дело в том, чтобы установить правильный локаль (поскольку по умолчанию используется локаль C, которая обычно не очень хороша ни в чем, кроме английского). - person Martin York; 30.01.2010
comment
Не забудьте использовать шрифт, содержащий буквы нужного языка. Кроме того, фарси, как и арабский, является RTL, некоторые буквы связаны, другие нет, а некоторые нет. Удачи в попытках починить дурацкую консоль win, чтобы она делала то, что вы хотите;) - person AraK; 30.01.2010
comment
@Martin: вы утверждаете, что локаль C хорошо говорит по-английски? Если да, то позволю себе не согласиться... - person Jerry Coffin; 31.01.2010
comment
@Jerry: Нет. Мое предложение очень четкое, и оно говорит не об этом. - person Martin York; 31.01.2010