Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WinCE & Unicode, проблемы конвертации из ANSI в Unicode 
V
    Опции темы
chaos
Дата 5.2.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 4
Всего: 44



День добрый!
Столкнулся с проблемой:
читаю текстовый файл(ANSI).
Использую CFile(в сдк к девайсу у CStdioFile нет метода ReadLine, по этому CFile + textMode нету). ну так вот
читаю файл по строчно(по символьно до \x0D \x0A)
преобразовываю полученную строку в юникод получаю вместо например ПРИВЕТ - П.Р.И.В.Е.Т. где . 0х00
такие сторки винда отказалась отображать.
попробовал с помощью MultiByte..... результат таков же  
посмотрел на память такой строки
WCHAR *lpwText = L"Привет";
буква П выглядит не так как в случаях выше а что то типо 0x38 0x40.

вопрос: как нормально преобразовать из анси в юникод? что я упустил?


Заранее благодарен. 
PM WWW   Вверх
NiJazz
Дата 5.2.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 2
Всего: 23



chaos, попробуй читать с помощью fscanf или ifstream

Добавлено через 1 минуту и 35 секунд
Ну или ReadFile в конце-концов. smile
PM MAIL   Вверх
chaos
Дата 5.2.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 4
Всего: 44



Цитата(NiJazz @ 5.2.2008,  13:59)
chaos, попробуй читать с помощью fscanf или ifstream

Добавлено @ 12:00
Ну или ReadFile в конце-концов. smile

не вижу разницы. прочитаю я все теже букафки в анси кодировки. или все же нет?
PM WWW   Вверх
NiJazz
Дата 5.2.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 2
Всего: 23



CFile - высокоуровневый класс-обёртка. Поэтому там внутри возможны любые преобразования. Попробуй просто считать содержимое файла в буфер с помощью ReadFile и сделать преобразование. По идее, должно работать.
PM MAIL   Вверх
Alexeis
Дата 5.2.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 3
Всего: 459



  Мдя у меня совершенно не работают никакие варианты. Если нужен только русский и английский, то можно попробовать что-то типа этого.

Код

    char  c[20] = "русский текст";
    TCHAR C[50];
    
    for (int i = 0;;i++)
        if ((c[i] >= 'А')&&(c[i] <= 'я'))
            C[i] = L'А' + c[i] - 'А'; 
        else if (c[i] != '\0')
            C[i] = c[i];
        else 
            {C[i] = L'\0'; break;};



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
chaos
Дата 6.2.2008, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 4
Всего: 44



проблему решил явным указанием 1251 в функции MultiByte....вместо CP_ACP
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.