Вопрос по кодовой странице

Тема в разделе "WASM.BEGINNERS", создана пользователем blueboar, 23 июн 2009.

  1. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Пишу программу. Консольную. Она должна уметь работать с разными кодовыми страницами (KOI8/utf8/866 - может еще что-то). Как это сделать.

    Что испробовано:

    SetConsoleCP (SetConsoleOutputCP) - не помогло. Ничего не изменилось. Говорят что нужно еще поставить шрифт Lucida Console - но мне это не подходит - моя программа должна работать с любым шрифтом

    CharToOem/CharToOemBuff - переводит в стандартную кодировку (utf8). Оно конечно неплохо. Но остальные кодировки не поддерживает.

    Собственно вот. Что посоветуете?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    blueboar
    Что значит "работать с разными кодовыми страницами"?
    Выводить на экран?
     
  3. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    blueboar
    Считай что кодовая страница консоли 1251.
    Пишешь/ищешь конверторы koi8r<->1251<->866.
    Перед выводом строки, если ее кодировка отлична от 1251, конвертируешь в 1251.
     
  5. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Ну во-первых, она не у всех 1251, только у Русских, как я понимаю. А если я ее в италию скажем отдам или во францию?

    А во-вторых, вы уверены, что во всех кодировках все 256 символов одни и те же, только различаются порядком?
     
  6. c4m310t

    c4m310t New Member

    Публикаций:
    0
    Регистрация:
    19 дек 2008
    Сообщения:
    237
    blueboar
    Вам же сказали - пишите конвертеры из одной кодировки в другую...
     
  7. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    blueboar
    Один ведь слышал про такую вещь как Юникод? Лайк, одна кодировка, никаких кодовых страниц, ага?
     
  8. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Я не против конвертеров. Просто объясните мне

    1) Что делать если не конвертируется однозначно. В одной кодировке скажем есть символ а в другой такого нету
    2) В какую кодировку кодировать? Есть какая-то страндартная, одинаковая во всем мире кодировка по умолчанию?

    3) Насчет юникода - а юникод в консоли есть? То есть я могу иероглифами рисовать в консоли?
     
  9. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Гм. Кану не выводит. Даже с использованием Lucida Console.

    Юникод.

    // Почто обе запятых удалили? Мы только одну просили zap'нуть. Ну да пусть. Лол.
     
  10. blueboar

    blueboar New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2004
    Сообщения:
    110
    Адрес:
    Россия, Курган
    Хорошо. Тогда как включить в консоли юникод?
     
  11. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Просто использовать широкие функции. Например, вместо WriteConsoleA вызывать WriteConsoleW.
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    wprintf для crt