Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.
И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!
Заранее всем спасибо, особенно, если кто-нибудь пошлет эту утилиту UCONVERT и расскажет про ресурсы UNICODE.
Здравствуйте typename, Вы писали:
T>Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.
Насколько я знаю, resource compiler не понимает файлы в Unicode, а текущий набор символов переключается с помощью #pragma code_page. Если довольно старая статья в MSDN KB, не знаю, насколько она соответствует действительности:
Здравствуйте typename, Вы писали:
T>Как перевести файлы ресурсов в UNICODE? В MSDN вроде написано, что с помощью утилиты UCONVERT. Но у меня VC сами знаете за сколько куплена и утилиты там нет А есть ли другой способ? И что вообще эта утилита делает? Пробовал просто перегнать файл rc в utf-16 — ничего не вышло. Значит не все так легко.
Не совсем понятно что значит "перевести файлы ресурсов в UNICODE"
Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
T>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!
А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.
\/\/i||i
Re[2]: Локализация ресурсов и UNICODE
От:
Аноним
Дата:
29.11.01 14:52
Оценка:
Здравствуйте Willi, Вы писали:
W>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE" W>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.
T>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!
W>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.
С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.
Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
Здравствуйте Willi, Вы писали:
W>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE" W>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл.
А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.
T>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!
W>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE.
С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.
Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
Здравствуйте typename, Вы писали:
T>Здравствуйте Willi, Вы писали:
W>>Не совсем понятно что значит "перевести файлы ресурсов в UNICODE" W>>Если я не ошибаюсь, все строки после компиляции ресурсов переводятся в UNICODE, достаточно взглянуть на .res файл. T>А почему тогда русские буквы не отображаются в диалговоых окнах в Windows 2000? Вместо них — вопросительные знаки. По-моему, это как раз от того, что они — не UNICODE.
Судя по всему они не только под Win2000 не отображаются, а везде.
А неотображаются потому что язык ресурса неправильно указан.
Правой кнопкой по ресурсу, Properties, в комбобоксе Langage укажи Russian
T>>>И вообще, почему все так неудобно, что связано с UNICODE? Ведь в конце концов это кодировка WinNT!
W>>А кто сказл что неудобно? Используешь повсюду TCHAR и пишешь везде _T(""), и можно забыть про проблемы с UNICODE. T>С обычными wchar_t — да. А вот со std::wstring не всегда все гладко. Хотя и удобно.
T>Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу
на какой-нить экзотический язык ( китайский например )
А для русского это совсем не обязательно.
Здравствуйте Willi, Вы писали:
W>Здравствуйте typename, Вы писали:
T>>Здравствуйте Willi, Вы писали:
[skip]
T>>Еще вопрос: надо ли поддерживать ANSI-версию программы, если Windows понимает и UNICODE и, по-видимому, и дальше собирается понимать?
W>Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу W>на какой-нить экзотический язык ( китайский например ) W>А для русского это совсем не обязательно.
NT (читай 2000/XP) побысрее работает с UNICODE (т.к. не тратит время на преобразование ANSI -> UNICODE). Но ИМХО не очень много приложений найдется, для которых этот выигрыш в скорости будет значительным.
Здравствуйте Vodka, Вы писали:
V>NT (читай 2000/XP) побысрее работает с UNICODE (т.к. не тратит время на преобразование ANSI -> UNICODE). Но ИМХО не очень много приложений найдется, для которых этот выигрыш в скорости будет значительным.
Здравствуйте Willi, Вы писали:
W>Судя по всему они не только под Win2000 не отображаются, а везде. W>А неотображаются потому что язык ресурса неправильно указан. W>Правой кнопкой по ресурсу, Properties, в комбобоксе Langage укажи Russian
И так указан. Но никто не сказал, что в NT системным языком должен быть установлен русский. Если программа пишется в UNICODE, то она отображается независимо от системного языка. Мне это и нужно.
W>Компилировать под UNICODE нужно только если ты собираешься локализировать свою порогу W>на какой-нить экзотический язык ( китайский например ) W>А для русского это совсем не обязательно.
К сожалению, для меня обязательно. Это — чуть ли не единственный способ заставить русские буквы отображаться на английских системах. Так что придется решать проблему с конвертированием ресурсов в UNICODE.
Так что, может кто-нибудь выслать утилиту UCONVERT?
Здравствуйте typename, Вы писали:
T>И так указан. Но никто не сказал, что в NT системным языком должен быть установлен русский. Если программа пишется в UNICODE, то она отображается независимо от системного языка. Мне это и нужно.