Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Приложения с использованием Unicode, Как начать разрабатывать ? ;) 
:(
    Опции темы
EvilsInterrupt
Дата 9.11.2007, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Почитав по этой теме все что имелось на форуме, почитал статью Джоэла Спольски, немножко ознакомился с тем что есть в данный момент для разработчика на дельфи, а страх все таки есть! ;(

Чтоже не хватает-то для счастья?

1. Непонятно, как я должен объявлять UNICODE-строки константы, пример для ANSI-строк это было бы так:
ConnectMessage : string = 'Connect Successful';

2. Какую версию UNICODE поддерживают стандартные WinAPI-функции с постфиксом 'W' ? Имеются же UTF-8, UTF-16, более того есть строки которые не требуют указывания порядка в начале юникод строки, такие как $FFEF, как с ними быть?

3. Имеются уже стандартные TLabel, TButton и др. но они работают с ANSI, как лучше всего сделать мне в проект, чтобы и юникод был ;)
и чтобы не изобрести велосипед и чтобы не пришлось переделывать в следующей версии Delphi, где обещается поддержка UNICODE ?

4. Какие помимо творения Майка Лишке и TNT есть средства для разработчика на Дельфи?
PM MAIL WWW ICQ Jabber   Вверх
Alexeis
Дата 9.11.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(EvilsInterrupt @  9.11.2007,  09:35 Найти цитируемый пост)
1. Непонятно, как я должен объявлять UNICODE-строки константы, пример для ANSI-строк это было бы так:
ConnectMessage : string = 'Connect Successful';

Код

const
  Widestr : WideString = 'русский текст';


Или же 

Код

ResourceString
  Widestr = 'русский текст';


Цитата(EvilsInterrupt @  9.11.2007,  09:35 Найти цитируемый пост)
2. Какую версию UNICODE поддерживают стандартные WinAPI-функции с постфиксом 'W' ? Имеются же UTF-8, UTF-16, более того есть строки которые не требуют указывания порядка в начале юникод строки, такие как $FFEF, как с ними быть?

  UTF-16. 2 байта на символ.

Цитата(EvilsInterrupt @  9.11.2007,  09:35 Найти цитируемый пост)
3. Имеются уже стандартные TLabel, TButton и др. но они работают с ANSI, как лучше всего сделать мне в проект, чтобы и юникод был ;)
и чтобы не изобрести велосипед и чтобы не пришлось переделывать в следующей версии Delphi, где обещается поддержка UNICODE ?


  Просто делать все свои строки юникодными, Delphi сам делает преобразование юникод - ansi

Цитата(EvilsInterrupt @  9.11.2007,  09:35 Найти цитируемый пост)
4. Какие помимо творения Майка Лишке и TNT есть средства для разработчика на Дельфи? 

  Библиотека KOL&MCK


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

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

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


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Цитата

 Библиотека KOL&MCK

На ваш взгляд, что в нем хорошего ? ;)
PM MAIL WWW ICQ Jabber   Вверх
Snowy
Дата 9.11.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Хорошего - малый размер программ.
Также можно подождпть до весны - в 2008-й контролы станут юникодные.
Также можно писать под Delphi.NET - там все строки только юникодные.
PM MAIL   Вверх
EvilsInterrupt
Дата 9.11.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Цитата

 UTF-16. 2 байта на символ.

Как известно что "побочным" эффектом кодировки UTF-8 является, то что она практически полностью совпадается с ANSI для американцев!
К примеру есть компания которая имеет программы с консольным интерфейсом под Dos или Win 9x\NT, эти программы спокойно понимают американский текст в ANSI кодировке. Так вот если разрабатывать WEB-сервис отдающий запросу от клиентских программ - текст в UTF-8 or UTF-7 кодировке, то когда клиентские программы получившие текст отдадут программам с консольным интерфейсом, то те спокойно переварят этот текст, т.к. он совместим с ANSI и конторе ненужно будет новые программы по обработке текста ;)
Вывод: Америкосы нас обскакали и тут, т.к. они экономят на создании новых программ.

Вопрос: Можно ли перевести WinAPI для работы с UTF-8 ?

PM MAIL WWW ICQ Jabber   Вверх
a_n_d_y
Дата 9.11.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 23.10.2006
Где: Ukraine::Kiev

Репутация: нет
Всего: 1



А чем собсна плох ТНТ?
PM MAIL ICQ Skype MSN   Вверх
Alexeis
Дата 9.11.2007, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


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

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



Цитата(EvilsInterrupt @  9.11.2007,  14:42 Найти цитируемый пост)
Вопрос: Можно ли перевести WinAPI для работы с UTF-8 ?

  "перевести" или "привести"?


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

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

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


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



UTF-8 - кодировка хранения и передачи.
Для работы она непригодна.
Конечно можно пытаться с ней работать, но это мазохизм и извращение.
PM MAIL   Вверх
EvilsInterrupt
Дата 10.11.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Snowy, из-за твоих слов еще один вопрос возник:
Если UTF-8 удобно хранить, а работать удобней в UTF-16, то как наилучшим образом, на твой взгляд, лучше разрабатывать программу?
PM MAIL WWW ICQ Jabber   Вверх
Snowy
Дата 12.11.2007, 13:35 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Я не говорил, что в UTF-8 удобно хранить.
Это "удобно" только англоговорящим - вроде анси, но, если вдруг будут непонятные буковки, то вс равно будет работать...
Формат хранения определяется целью.
Как правило, сохранённые данные всегда конвертируются из формата хранения в формат использования.
То есть, как и что хранить - определяется для каждой программы персонально.
А что касается строк, то постепенно идёт переход от ANSI к UTF-16.
В 2008-м наступит окончательный переход - анси строки останутся только для обратной совместимости.
А на данный момент я рекомендую вариант, который используется в KOL.
Код
{$IFDEF UNICODE}
  type KOLString = WideString;
{$ELSE}
  type KOLString = string;
{$END}
И дальше в программе используется тип KOLString вместо стрингов.
А анси или юникод - определяется в момент компиляции.
Таким образом можно сделать даже 2 варианта программы - анси и юникот, простой пересборкой с нужной директивой компилятора.
В Delphi2008 тип string станет по умолчанию unicode. И любой текущий проект будет собран там уже в юникод версию.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




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


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

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