4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
1

Чем отличаются типы UnicodeString и String

14.07.2010, 10:29. Показов 12749. Ответов 6
Метки нет (Все метки)

В теме, собственно, вопрос...

Чем отличаются типы UnicodeString и String и каким образом я могу это отличие почувствовать практически... Скажем, если буду использовать String вместо UnicodeString, то у меня там-то и там-то проблемы...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2010, 10:29
Ответы с готовыми решениями:

Заменить std::string на (String, UnicodeString, wchar_t)
Ребята подсобите std::string заменить на (String, UnicodeString, wchar_t) static size_t...

UnicodeString и string
Уже много тем, где это обсуждается, но нужного все равно нет. В с++ со строками беда какая-то....

Преобразование UnicodeString в string
Поставил RAD Studio 2010, столкнулся с такой проблемой: При попытке чтения из Edit, таким образом:...

Cannot convert 'string' to 'UnicodeString'
E2034 Cannot convert 'string' to 'UnicodeString' как вообще такое конвертировать?

6
Программист TH
290 / 145 / 12
Регистрация: 06.01.2009
Сообщений: 537
14.07.2010, 11:36 2
Юникод он и в африке юникод. На 1 код русской и английский символа приходится 2 бита, когда в String на Eng 1 бит. UnicodeString = L"Строка"; позволяет вставлять спец символы и символы юникодовой таблицы, а вообще юникод является универсальной кодировкой, международной так, чтобы тебе и арабский на нем писать можно было без проблем и данная кодировка символов является одной из самый совершенных из распространенных. Появился с C++Builder 2007 дабы угнаться за временем, не помню был ли он в CB2006...
1
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
14.07.2010, 11:37 3
davian, они ничем не отличаются (с 2009 версии).
Убедится в этом можно открыв файл sysmac.h:
C++
1
typedef UnicodeString        String;
До этого было:
C++
1
typedef AnsiString        String;
Сейчас же (2010 версия) конструкция выглядит так:
C++
1
2
3
4
5
#if defined(_DELPHI_STRING_UNICODE)
    typedef UnicodeString        String;           
#else
    typedef AnsiString           String;           
#endif
2
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
14.07.2010, 12:53  [ТС] 4
Ясно, спасибо! Даже если они не отличаются, то для совместимости с предыдущими версиями необходимо использовать UnicodeString, чтобы была возможность использовать кирилицу... если я все правильно понял...
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
14.07.2010, 13:06 5
Цитата Сообщение от davian Посмотреть сообщение
Даже если они не отличаются, то для совместимости с предыдущими версиями необходимо использовать UnicodeString, чтобы была возможность использовать кирилицу... если я все правильно понял...
Неверно. В 2007-й версии UnicodeString отсутствовала.
Как я уже писал выше присутствовал псевдоним String, который представлял собой AnsiString.
0
Программист TH
290 / 145 / 12
Регистрация: 06.01.2009
Сообщений: 537
14.07.2010, 13:26 6
В 2007 версии UnicodeString отсутствовала, но компоненты уже понимали юникод )
0
Эксперт С++
3951 / 1806 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
31.07.2010, 22:33 7
Цитата Сообщение от DanUnited Посмотреть сообщение
На 1 код русской и английский символа приходится 2 бита, когда в String на Eng 1 бит.
Тут скорее всего опечатка.

AnsiString на символ - 1 байт.
UnicodeString на символ - 2 байта.

Всё остальное - псевдонимы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2010, 22:33
Помогаю со студенческими работами здесь

Перевод из Unicodestring B std::string
Как осуществить перевод из Unicodestring B std::string? String(..).c_str t_str не работает.

Std::string в UnicodeString RAD XE4
Доброго времени суток. Как переменной UnicodeString присвоить значение из переменной std::string?...

Расширение класса. Заставить std::string понимать AnsiString и UnicodeString
Здравствуйте, есть стандартный класс - std::string , я хочу сделать для него доп. конструкторы,...

Чем отличаются между собой 3 книги Шилдта по С++?
Читаю сейчас его книгу "Руководство для начинающих", дальше хотел прочитать ещё его две книги...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru