Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 29.10.2009, 21:14   #1
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию кодировка.

дано:
Код:
wchar_t * s = {0x410, 0x410, 0x410, 0x410 0x410, 0x410, 0x0,};
void main()
{
  wprintf(s);
};
найти:
как заставить виндовую консоль говорить на языке UTF8?


знаю как перегнать строчку другой формат, но это не Труъ,
поэтому такой вариант не рассматриваем.

Последний раз редактировалось destructor, 30.10.2009 в 00:09. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
Старый 29.10.2009, 21:34   #2
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

запускаем cmd.exe, ставим через свойства шрифт TrueType, и командой chcp 65001 устанавливаем utf-8
после этого можно вызывать проги выводящие на консоль utf-8

ЗЫ но мне кажется что у тя код выводит utf-16
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился спасибкой от:
Старый 29.10.2009, 21:39   #3
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
ЗЫ но мне кажется что у тя код выводит utf-16
ну текст в пакетах л2 в чем?

Последний раз редактировалось destructor, 29.10.2009 в 21:40. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
Старый 29.10.2009, 21:51   #4
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

о, а ещё есть такая функция - SetConsoleOutputCP
и можно прям в своей проге указать кодировку - SetConsoleOutputCP(65001);

Добавлено через 1 минуту
destructor, в пакетах линейки в юникоде (utf-16), как его на консоль выдернуть я хз так что приждётся сначала в utf-8 переводить, благо это не проблема)
__________________
Я здесь практически не появляюсь!, Skype - ikskor

Последний раз редактировалось xkor, 29.10.2009 в 21:51. Причина: Добавлено сообщение
xkor вне форума   Ответить с цитированием
Старый 29.10.2009, 22:31   #5
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

мсдн пишет:
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications

щас попробую: SetConsoleOutputCP(1200);

Добавлено через 29 минут
Цитата:
Сообщение от destructor Посмотреть сообщение
available only to managed applications
плять, пойду убьюсь

//alexteam: пашли, я местечко хорошее знаю, покруче чем будка самоубийств.

опоздал, купил 3 банки пива и таки осилил себя забылокодить конвертор,
снова хочется жить, так что в другой раз

Последний раз редактировалось destructor, 30.10.2009 в 00:17. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
Старый 30.10.2009, 00:14   #6
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 60
Сказал Спасибо: 3
Имеет 107 спасибок в 21 сообщенях
GoldFinch пока неопределено
По умолчанию

в чем проблема? в линейке строки все UTF-16, обычный юникод.
в С\С++ это wchar_t*, std::wstring
выводится через std::wcout
GoldFinch вне форума   Ответить с цитированием
Старый 30.10.2009, 00:18   #7
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

GoldFinch, да кракозяблы она вместо руского выводит
destructor вне форума   Ответить с цитированием
Старый 30.10.2009, 00:25   #8
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 60
Сказал Спасибо: 3
Имеет 107 спасибок в 21 сообщенях
GoldFinch пока неопределено
По умолчанию

cpp Код:
#include <iostream> #include <locale> int main() {     setlocale(LC_ALL,"Russian");     wchar_t s&#91;] = {0x0410, 0x0411, 0x042b, 0x0420, 0x0412, 0x0410, 0x0413, 0};     std::wcout << s << std::endl; }
& #91; это [

PS: "Russian" - это под виндой. под никсами другая строка, есле что

Последний раз редактировалось GoldFinch, 30.10.2009 в 00:31.
GoldFinch вне форума   Ответить с цитированием
Старый 30.10.2009, 00:38   #9
Рыцарь
 
Аватар для destructor
 
Регистрация: 26.06.2009
Сообщений: 2,433
Сказал Спасибо: 154
Имеет 692 спасибок в 426 сообщенях
destructor на пути к лучшему
По умолчанию

Цитата:
Сообщение от destructor Посмотреть сообщение
wprintf
вместо
Цитата:
Сообщение от GoldFinch Посмотреть сообщение
std::wcout
должен катить

Добавлено через 36 секунд
но и твои лыжи тоже не поехали

Последний раз редактировалось destructor, 30.10.2009 в 00:39. Причина: Добавлено сообщение
destructor вне форума   Ответить с цитированием
Старый 30.10.2009, 00:57   #10
Пользователь
 
Регистрация: 03.11.2008
Сообщений: 60
Сказал Спасибо: 3
Имеет 107 спасибок в 21 сообщенях
GoldFinch пока неопределено
По умолчанию

destructor, чини ОС, с ней явно что-то не то.
GoldFinch вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 09:22.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!