Delphi и Unicode

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Delphi и Unicode

Eugie » 17 апр 2004, 16:03

Если мне память не изменяет, строковые ресурсы из rc всегда автоматически конвертируются в Unicode. Это можно легко проверить: добавить STRINGTABLE в rc и в нее какую-нибудь строчку типа 'Тестовая строка', скомпилить и поискать ее в exe-нике. Если нет - все OK :)

AiK » 17 апр 2004, 15:45

Видимо не правильно выразился. У меня нет никаких dfm. API приложение. И ресурсы ручками создаются. Вернее компилятся из rc файлов. Которые пишу не я...

Eugie » 17 апр 2004, 15:41

AiK, строковые свойства в dfm-файлах, задаваемые через Object Inspector, автоматически сохраняются в MBCS (UTF8 - один из вариантов MBCS), т.е. младшие ASCII символы - как есть, а остальные в multibyte. Обычные const строки в исходниках - зависит от типа: String - в ASCII, WideString - в Unicode. Ресурсные строки (resourcestring) - всегда в Unicode. Отсюда вывод: если нужно гарантировать, чтобы все строковые ресурсы задавались в Unicode, следует описывать их как resourcestring и подгружать в runtime для соотв. текстовых элементов интерфейса.

А MBCS чем не устраивает? IMHO это для ресурсов оптимальный формат - их же обычно посимвольно не надо разбирать (основное неудобство работы с multibyte strings).

AiK » 16 апр 2004, 17:06

Спасибо. Вопрос вдогонку: как задёшево из ресурсов ASCII символы перегнать в Unicode. Например те же пункты меню?
Если нужно писать прямо в ресурсах в Unicode, то какой редактор использовать? IDE чур не предлагать, ибо ресурсами совсем не программист занимается :) .

Eugie » 16 апр 2004, 16:53

Utf8 - кодирование переменной длины: для ASCII символов - 1 байт, для остальных - до 3 байтов. Т.е. если заранее известно, что текст в основном состоит из ASCII-символов, то с т.з. экономии памяти Utf8 эффективнее. Для иероглифов, понятно, наоборот :)

Delphi и Unicode

AiK » 16 апр 2004, 12:16

Нужны наставления на путь истинный по сабжу. Что использовать: AnsitoUtf8 или StringToWideChar? Есть ли какие засады?

Вернуться к началу