Посоветуйте простой путь для ASCII -> UTF-8 конвертации строк под Win32

Тема в разделе "WASM.WIN32", создана пользователем liss, 8 апр 2005.

  1. liss

    liss New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2004
    Сообщения:
    25
    Привет всем!

    В общем, стоит задача конвертации строки из ASCII в UTF-8 с учетом codepage средствами Win32. Я использую такой путь:



    ASCII -> UTF-16 (MultiByteToWideChar, arg_codepage==current)

    UTF-16 -> UTF-8 (WideCharToMultiByte, arg_codepage==CP_UTF8)



    Можно это сделать как-нибудь попроще, например из ASCII сразу в UTF-8?

    Заранее, спасибо!
     
  2. rst

    rst New Member

    Публикаций:
    0
    Регистрация:
    5 май 2003
    Сообщения:
    165
    #include <atlconv.h>

    void foo()

    {

    USES_CONVERSION;

    wchar_t x = A2OLE("asdfg");

    }
     
  3. liss

    liss New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2004
    Сообщения:
    25
    2rst

    Спасибо, но желательно бы без всяких АТЛ, МФЦ и прочей... :) Об этом я забыл сказать:)
     
  4. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Если у тебя только ASCII, меньше 128, то можно самому конвертировать в UTF-16 добавлением нулей. Или можно самому делать UTF-16 -> UTF-8, там вроде довольно просто. А если даже и найдёшь функцию, конвертирующую за один вызов, наверняка внутри тоже будет ANSI -> UTF-16 -> UTF-8.