|
Юникод и utf8
|
|||
---|---|---|---|
#18+
boobyлюбая функция выделения подстроки с пятого по двадцатый символ, там где она может быть построена на индексном доступе против случая, когда не может.Ни одна функция, работающая с символами юникода, не может быть построена на индексном доступе. Функция, работающая с кодами - может, но проблем в том, что для приложения это слишком низкий и крайне неудобный уровень. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 16:56 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Basil A. Sidorovboobyлюбая функция выделения подстроки с пятого по двадцатый символ, там где она может быть построена на индексном доступе против случая, когда не может.Ни одна функция, работающая с символами юникода, не может быть построена на индексном доступе. Функция, работающая с кодами - может, но проблем в том, что для приложения это слишком низкий и крайне неудобный уровень. ну, вот где-то вокруг этого и крутится вопрос про ненавижу и бесит. Если бесит - хоть сколько-нибудь технически осмысленное. Альтернативно можно просто памяти на элемент внутреннего представления добавить, для сохранения индексного доступа. И продолжить отличать внешнее и внутреннее представление строки, всякий раз проводя нужного вида кодирование. И память же ведь все равно ничего стоит, и кодирование/декодирование проблем производительности не создает. Это все знают... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:09 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Выбираясь из запутанного разговору к техническим минусам: - в два раза больше памяти либо - невозможность доступа по индексу либо - каждый раз перекодировать туда-сюда. Плюсы? Если текст содержит только латиницу и кириллицу, ни одного плюса нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:18 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene NewЕсли"Предположение - мать всех провалов". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:19 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, это не предположение, это условия. И самое дикое во всем этом - это что строки больше не массивы. Это, за что его авторам надо убиться о стенку. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:22 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Упреждая вопросы, а как бы сделал я. Следовало включить в однобайтовую кодировку и стандартизировать кириллицу. Так к в мире есть два основных алфавита - латиница и кириллица. (у китайцев НЕТ алфавита, если вам вдруг захочется их считать). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:25 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene New, алфавита нет,а тексты есть тем не менее ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:29 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
exp98, типа как из дурака в классе запретить математику изучать. Пусть борются со своей отсталостью. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 17:39 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
С Отсталостью? А кто в последние десятилетия регулярно побеждает на олимпиадах прогр/мат ? Или к примеру объективно известно, что женщины не пользуются мужской логикой. Тоже отсталые? В то же время также объективно по строению мозга мужики ближе к одному из приматов, нежели к женщинам. Ну не надо же таких аргументов про отсталость в духе кальвинизма, избранных. Тут уж либо крестик, либо шорты. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 18:02 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
maytonboobyPS Где-то в закромах ораклового публичного сайта валяется white paper от 2003 года, специфически строковым performance issues посвященная. Efficient Use of pl/sql String functions for Unicode Applications посмотри при случае, если не видел. ОК. Спасибо. Почитаю. нашел ссылку: https://www.oracle.com/technetwork/products/globalization/efficient-plsql-133329.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 18:11 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
https://www.oracle.com/technetwork/products/globalization/efficient-plsql-133329.pdf Вот еще жирный минус, возможно худший из всех. Нанесен сильный удар по реляционным базам данным, сильно уменьшивший их эффективность. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 18:32 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene New https://www.oracle.com/technetwork/products/globalization/efficient-plsql-133329.pdf Вот еще жирный минус, возможно худший из всех. Нанесен сильный удар по реляционным базам данным, сильно уменьшивший их эффективность. Глупости. СУБД это не текст процессор. К тому же никто не запрещает оракулу представить строку ввиде таблицы с индексом ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 18:41 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene NewСледовало включить в однобайтовую кодировку и стандартизировать кириллицу. Так к в мире есть два основных алфавита - латиница и кириллица. 1) Кириллица далеко не среди основных (по числу использующих) алфавитов мира, но к технической стороне дела это не относится. 2) Сколько символов латиницы и кириллицы вы включили бы в свою универсальную однобайтовую кодировку? Вам же придется впихнуть туда все, что потребно не только англоязычным с их базовой латиницей, но и немцам, французам, испанцам, финнам, венграм, шведам и проч. То же и с кириллицей: 33 буквами русского алфавита не отделаетесь. И как только вы оставите за пределами стандартизации всю тут публику, которая сейчас благодаря Unicode не имеет проблем с использованием своих систем письменности в компьютеризированной части жизни, вы немедленно получите мировую войну новый комитет по Unicode. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 19:16 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
СУБД это не текст процессор И ЧО? Просто увеличение места под хранение всех строковых столбцов в два раза. Просто так - раз и база выросла вдвое. Без какой либо выгоды вообще. Кириллица далеко не среди основных (по числу использующих) алфавитов мира, Кириллица второй после латиницы мировой алфавит. Славяне - самая многочисленная этническая группа Европы к тому же. Других алфавитов то и нету. Греческий потерял свое значение, вы даже не сможете прочитать название букв. Вам же придется впихнуть туда все, что потребно не только англоязычным с их базовой латиницей, но и немцам, французам, испанцам, финнам, венграм, шведам и проч. То же и с кириллицей: 33 буквами русского алфавита не отделаетесь. На кириллицу нужно 66 символов. Даже среди второй половины байтов на всякие дополнения к латинскому остается 61 - туда можно запихнуть 30 букв. А ведь еще в первых 127 символах можно поискать и найти место. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 19:50 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Не думали о том, что потом возможна обратная оптимизация? Когда всем свой английский навяжут, везде поставят, всех приучат а потом скажут - ах, столько лишнего места, сколько лишней нагрузки, давайте ка все лишние байты отбросим и оставим только латиницу в английской версии. Книг в бумажном виде уже почти не издается. При моем предложении наш язык был бы прибит гвоздями к мировому стандарту. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 20:01 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene NewНа кириллицу нужно 66 символов. Даже среди второй половины байтов на всякие дополнения к латинскому остается 61 - туда можно запихнуть 30 букв. А ведь еще в первых 127 символах можно поискать и найти место. Ну, если русские никого не угнетают, вам придется признать, что 66 букв на кириллицу не хватит: посмотрите алфавиты славян Европы, а потом еще кириллические алфавиты, используемые неславянской публикой. Посмотрите на «расширенную« латиницу: там больше знаков, чем в «основной» — и всем этим пользуются. А что делать с арабским письмом, которым пользуется раза в два больше народу, чем всей кириллицей? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 20:23 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
boobymayton, о конкатенации речь не шла вообще. и она не плохая и не хорошая. Просто операция на строках. Очень замечтательно хорошая при разумном использовании. Вот дают тебе задачу (искусственную, но какая вспомнилась) - написать функцию, которая должна сформировать строку, имеющую смысл буфера. Использоваться она будет в самом-самом вложенном цикле и её производительность критична. тебе на вход отдают приемник, размер его не известен, но приемник гарантирует, что выбросит ошибку, если буфер в него не поместится. Возможности спросить у приемника - какого размера строку ты сможешь принять нет. Я не очень понял суть вопроса. Интерфейс такой? Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 21:44 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene New СУБД это не текст процессор И ЧО? Просто увеличение места под хранение всех строковых столбцов в два раза. Просто так - раз и база выросла вдвое. Без какой либо выгоды вообще. База не вырастет вдвое. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 21:46 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Basil A. SidorovmaytonЗнаете ...Зачем так много букав? Классик русской литературы в классическом же четырёхтомнике пишет целые абзацы на французком языке. Дети, опять-же ... Не знаю, как сейчас, но раньше, в литературе для детей младшего школьного возраста, принято было расставлять ударения, чтобы ребёнок, которому объяснили в школе, что "эта чёрточка на гласной буквой обозначает ударный слог", мог запоминать правильное произношение (пока) незнакомых слов, просто читая книги. У меня сейчас появилась идея. В борьбе за позиционную строку мы можем все таки надыбать полтора битика. Я вспомнил о такой интересной кодировке как Base85. Беря за основание системы счисления число не кратное два в целой степени мы можем получить более плотное заполнение информацией одного разряда. Points: 1) Ascii-7 = 128 chars 2) Кириллица = 66 chars 3) Умляуты и всякие французские и прочие символы (кроме корейско-китайских) = ? (сколько их хер ево знает) Все это суммируем и гоним в систему счисление с некратным основанием. А? Вот как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 21:55 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Eugene NewЗачем это делать - тема для отдельного обсуждения. В смысле заливать свои исходники на гитхаб. Это же абсурдное действие, полностью против здравого смысла! Речь не идет о твоей коммерческой деятельности и об исходниках на которых стоит клеймо корпорации или об исходниках которые несут элемент тайны. Государственной. Бизнесовой и проч. Ресь о другом. Если у тебя есть идея. Ты ее просто реализовал. И увидел что она - классная и хочешь ей поделится со всем миром. (Примерно так как поэт пишет стихи). Ты берешь и выкладываешь ее в открытый доступ. И дальше - иногда случается чудо. Если сообщество оценило идею - оно предлагает свои улучшения. И твоя идея начинает дышать и жить своей жизнью. Так возник к примеру Linux. Не на гитхабе конечно. Но на идеях публичности, и коллаборации. Гитхаб - это просто одна из имлементаций площадки где можно стартовать публичные проекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 22:20 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Basil A. Sidorovboobyлюбая функция выделения подстроки с пятого по двадцатый символ, там где она может быть построена на индексном доступе против случая, когда не может.Ни одна функция, работающая с символами юникода, не может быть построена на индексном доступе. Функция, работающая с кодами - может, но проблем в том, что для приложения это слишком низкий и крайне неудобный уровень. Стоп. Василий. У меня - жесткое дежа-вю. Я помню что ты уже где-то поднимал тему code-points, combining-characters? И очень сильно отмечал важность этого функционала в строковом API. Или даже не важность а безальтернативность. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 22:32 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
mayton1) Ascii-7 = 128 chars 2) Кириллица = 66 chars 3) Умляуты и всякие французские и прочие символы (кроме корейско-китайских) = ? (сколько их хер ево знает) Все это суммируем и гоним в систему счисление с некратным основанием. А? 2) Посмотрите уже, наконец, что не 66 букв надо на кириллицу. Там за сотню точно уйдет. 3) Навскидку, не менее 40 (и этим пользуются). Я как-то давно попытался выяснить минимальное число символов, потребных для обслуживания русского языка. Получилось 14 (13 букв и модификатор), выглядело дико. Если расширить до 17, можно было легко понять написанное, если зачитывать вслух, зажав нос. Называлось Дурилица. Но есть идея получше: переводим всех на МФА , который редуцируем до 5 символов изменения тона и общаемся свистом. Правда, язык придется тоже сменить: русский не подойдет. Зато какой выигрыш при индексном доступе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 22:54 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
mayton... Я не очень понял суть вопроса. Интерфейс такой? Код: java 1. 2. 3. 4.
Давай считать, что по легенде, использовать псевдокод на java мне запрещено из религиозных соображений. Поэтому на pl/sql: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
Под спойлером код-страшилка, на основании которого ложно умозаключается, что конкатенация - плохая операция. Так не надо делать даже маленьким детям, ни за что на свете. Но код этот писала не конкатенация, а человек, может даже и не маленький. Требуется оправдать конкатенацию, не используя никаких функций из набора строкового api, за исключением только конкатенации (lpad/rpad и пр. и пр. (как тут пишут) запрещаем из идейных соображений). других ограничений не накладываем. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 23:04 |
|
Юникод и utf8
|
|||
---|---|---|---|
#18+
Ы2, а чем вам не угодила морзянка? { - ; . ; пробел} И свистите себе на здоровье ... художественным свистом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2018, 23:10 |
|
|
start [/forum/topic.php?fid=16&msg=39708868&tid=1339969]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 246ms |
total: | 393ms |
0 / 0 |