![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
пойдем дальше : логично ли предположить
что вывод этого кода будет Привет ? однако ж практика (в том числе и куча вопросов почему у меня кракозябры вместо текста) утверждают обратное ![]() ![]() Добавлено @ 14:51 если говорить по логику , то для меня строчка, по вывода введенного пользователем текста :
хоть и логична, но внушает (справедливые) опасения ![]() так что на чистой логике в программированнии далеко не уедишь ![]() Это сообщение отредактировал(а) mes - 26.4.2012, 14:54 |
||||
|
|||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
html ? ну... именно в QLabel он не страшен. XSS там не пройдёт))) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
страшен ли - это другой вопрос ) но поведение может быть не очень ожидаемое..так же как и str.at(1) ![]() |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
borisbn, признаюсь, я привел не удачный пример. Хотел максимально простой и наглядный. Придумал, так на лету, но .. ступил признаюсь! ![]() При правильной строке действительно невозможно такое состояние. Но тем не менее, смысл не в этом примере. Кодировка utf8, э... как бы это сказать... глюкабельная. т.е. предрасполагающая к багам. Очень часто видел в программах, ошибки приводящие к нестабильности. Не хочу щас копаться выискивать какие-то примеры. Достаточно того, что в слове "привет", все-ж таки 6 букв, а не 12 ![]() Тем более, что похоже это начинает затрагивать чьи-то религиозныее чувства. А там где начинается фанатизм, кончается логика. Это сообщение отредактировал(а) volatile - 26.4.2012, 23:44 |
|||
|
||||
baldina |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
мнение понятно, но не обоснованно
я тоже. только причем тут utf? ошибки в программах вообще склонны приводить к нестабильности
c utf неудобно работать при помощи char (std::string), да, но - не опасно. к тому же есть библиотеки, utfcpp например так что религия тут непричем) |
||||||
|
|||||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
т.е. тот факт, что utf8 самая удобная кодировка(имхо) - религиозные чувства? Это сообщение отредактировал(а) boostcoder - 27.4.2012, 00:32 |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Блин.., из-за того что вчера тупанул, даже спал плохо..
Ночью снились utf символы, и другие кошмары ![]() Стоит только добавить, что мое замечание, означает лишь что над строкой не выполнялись, например, никакие стандартные алгоритмы. Иначе на вопрос
можно привести реальный пример:
http://codepad.org/aQMdC3ag boostcoder, lws почему-то у меня щас не открылась Это сообщение отредактировал(а) volatile - 27.4.2012, 06:58 |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ну... я не верю, что можно случайно отсортировать utf`ную строку)) к тому же(специально по этому случаю, добавил на LWS utfcpp):
http://liveworkspace.org/code/492f72f74fa9...5201b674ba97c4d да, сервер вчера обновлял. Добавлено через 1 минуту и 52 секунды дока, если вдруг кто захочет поэкспериментировать. |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Не только отсортировать. Практически любой стандартный алгоритм может привести к краху. Да не только алгоритм, обыный доступ к символу str[n] = 'А', это самоубийство; Нужно постоянно помнить об этом.
Не верю просто что это можно назвать самой удобной кодировкой, иначе как не под религиозным порывом. ![]() Не думал что это выльется в холивар. (В конечно счете, как я понимаю win vs nix). Боже упаси, не хочу в этом участвовать. ![]() Между прочим уважаю линуксоидов. В никсах действительно очень и очень много что гораздо лучше, сделано чем в венде. И венда по общему (суммарному) безусловно проигрывает. Но есть вещи, которые в венде лучше, их не много, но они есть. Между прочим, недавно дженту поставил в качестве альтернативки. Неплохоая штуковина, п...хаться правда пришлось, но щас вроде все ок. ![]() |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
просто нужно приучать себя к пониманию того, что строка - не контейнер чаров, а контейнер некоторых единиц интерпретируемых как символы. и все. никаких косых действий в этом случае не случится. |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
В том то все и дело, что об этом почти никто не вспоминает. Зачем далеко ходить, даже на этом форуме, почти любая программа которую пишут для новичков, (и не только для новичков), грешит этим. Вспоминаю такие темы как "определить что это полиндром", "найти максимальное по длине слово в предложении", и так далее..., здесь таких тем очень много. Любая из этих программ при вводе русских символов отправит комп в "нирвану", (или в самом лучшем случае просто даст не верный результат). А кто запретит ввести русские символы? |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
||||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Я бы так сформулировал: строку в utf-8 в std::string можно ТОЛЬКО хранить. Никаких операций с ней делать нельзя. Взять хотя бы reverse_iterator... Кстати... с rbegin() и эта библиотечка не спасёт:
С utf-8 в Си++ становится как в интернетах - всё, что вводит пользователь - обязательно "анэскейпить". В нашем случае - переводить либо в свою однобайтовую кодировку, либо в utf-16, а уж затем работать с такой строкой... -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
ну не знаю... помоему вы все слишком драматизируете..
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |