Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: так точнее
Старый 02.04.2016, 18:04   #101
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

вот малость поседел.

внятно надо давать ответы на вопросы.

начерта этот UTF8 раз он жрет байтов в разы больше

какая уж тут производительность ?

это преобразование надо делать самому чоль ?
Изображения
Тип файла: jpg UTF-8_Encoding_Scheme.jpg (61.6 Кб, 103 просмотров)
RAFA91 вне форума
Старый 02.04.2016, 18:07   #102
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
начерта этот UTF8 раз он жрет байтов в разы больше
Цитата:
и наглядный пример.
имеем следующую xml
размер в UTF8 => 4*548 байт
размер в UTF16 => 9*096 байт
странные 2 раза
это теоретический максимум, а не норма.
для UTF16 такая же таблица есть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 02.04.2016, 18:09   #103
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Больше чем что?

Не надо самому (если вы не пишите свою библиотеку для работы с юникодом, ОС и т.п.).
Цитата:
Для работы с юникод строками обычно библиотеки типа ICU используют.
Qt например умеет с юникодом работать примерно так же (по удобству) как во всяких сишарпах и джавах.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Старый 02.04.2016, 18:29   #104
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
ничего что U в UTF8 значит Unicode?
Microsoft тут скорее повлияли сильно на стандарт UTF, его по большей части брали чтоб не ломать все.
Это маркетинг. Цель маркетологов запутать покупателей.
Майкрософт начала разработку UNICODE. После IBM и ORACLE с похватились и решили делать свой UNICODE.
Майкрософт пришлось отдать товарную марку "Unicode" в одноименный комитет.
И пере именоваться в UCS-16.
Если вы историю не знаете это ваши проблемы. В доказательства могу привести блокнот при открытии вы можете выбрать кодировку Unicode.

Цитата:
ну да, побайтно, и при по-байтном разборе мы получим родной порядок байт, а не как прислали.
так что аргумент не ясен, маркетинга тут нет.
В Америке существует 2 огромных лагеря.
1) Oracle- Apple–IBM–Motorola
2) Micosoft-Intel
Так вот первый лагерь славится big-endian второй little-endian. Все данные есть в Wiki можете проверь.

Так вот в Oracle придумали хорошую фразу:
Цитата:
плюс UTF8 не зависит от порядка байт целевой машины.
Они хотели что-бы комитет принял их стандарт юникода!
Фраза звучит так что их кодировка UTF8 не требует преобразования, в отличие от Unicode-Micosoft.
Apple–IBM–Motorola не нравилось то что Microsoft при описании Unicod выбрала little-endian. Их процессорам требовалось вызывать преобразование. В отличии от нативного Intel.

Ответным стал ответ от Micosoft. Они сказали что ни останутся с Intel'ом. Микрософт придумала фразу
Цитата:
UTF8 предназначен для хранения и передачи.
Намекая на то что внутренний формат должен остаться ихним Unicod варианте big-endian для одних и little-endian для других.

На этом комитет Unicode и по решил. Я сам разрабатывал документы что-бы угодить 10 фирмам. И там приходится врать всем, уговаривать всех что-бы согласовать стандарты.

Цитата:
UTF8 не применяют для работы в основном. а для хранения и передачи.
Применяют и ещё как UTF-8 является встроенной кодировкой для QT и Java. Не верите можете сами проверить.
Именно в этой кодировке идёт обработка строк внутри программ. И именно в таком виде строки хранятся в памяти.
Я уже сказал что это быстрее.

Цитата:
а вот тут не уверен.
если для UTF16 мы может просто предположить что два байта и точна.
то для каждого байта UTF8 нужно декодировать, по одному. от этого проседания тоже есть.

вы бы хоть разобрались прежде чем писать все это, а уж тем более заявляя про маркетинг и тп.
Я прекрасно знаю внутренее устройство регулярных выражений. И варианты исполнения и варианты использования. Но если человек не хочет услышать, то он и не услышит.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 02.04.2016 в 18:33.
Pavia вне форума
Старый 02.04.2016, 18:34   #105
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

либо прикладывайте пруфы на ваш маркетинг, либо хватит мусорить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Старый 02.04.2016, 18:42   #106
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
это преобразование надо делать самому чоль ?
Ответ. Их вообще не нужно делать.
Нужны ли эти преобразования для сравнения строк (оператор "==")?
Нужны ли эти преобразования для слияния строк (оператор "+")?
Нужны ли эти преобразования для присвоения строк (оператор "=")?
Нужны ли эти преобразования для поиска подстроки (функция find)?
Нет не нужна!
Нужны ли эти преобразования для UppCase?
Нужны ли преобразования в парсеках файлов XML , CFG, INI, hml?
Ответ нет нужно! Шок. Обработка идёт аналогично строкам ANSI.
Где UppCase работает только с латиницей. Ибо Unicod делали Американци для себя. И все эти стандарты делали для себя!
А там где реально нужны преобразования очень редки.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 02.04.2016 в 19:02.
Pavia вне форума
Старый 02.04.2016, 23:03   #107
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Применяют и ещё как UTF-8 является встроенной кодировкой для QT и Java. Не верите можете сами проверить.
Именно в этой кодировке идёт обработка строк внутри программ. И именно в таком виде строки хранятся в памяти.
Да ну?

https://wiki.qt.io/QString
"Internally, QString stores the string using the UTF-16 encoding."
http://docs.oracle.com/javase/7/docs...ng/String.html
"A String represents a string in the UTF-16 format"

Цитата:
А там где реально нужны преобразования очень редки.
Например получение количества символов, отдельных символов/подстрок, вставка не в конец/начало строки это редкие случаи?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Старый 03.04.2016, 12:13   #108
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

UTF8 как я понял для преобразования использует эту таблицу

http://unicode-table.com/ru/

кстати это майкрософта таблица?


_________________________

смотрим описание

UTF-8 (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-битный») — одна из общепринятых и стандартизированных кодировок текста, которая позволяет хранить символы Юникода, используя переменное количество байт (от 1 до 6).

_______________________________

и где тут восьмибитный результат ?

кто делает это преобразование и зачем ?
RAFA91 вне форума
Старый 03.04.2016, 12:20   #109
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так сказали ж уже 100500 раз, что это скорее кратность (UTF-8 — 8, 16, 24, 32 бит, UTF-16 — 16, 32 бит), а не размер результата. (насчет 5-6 байтов вроде пока нигде не используется)

Про разницу между таблицей и кодировками читайте предыдущие страницы и статью по ссылке.
Павию не читайте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 03.04.2016 в 12:26.
Alex11223 вне форума
Старый 03.04.2016, 12:24   #110
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

возьму вашу же цитату и прочитаю ее полностью:
Цитата:
UTF-8 (от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-битный») — одна из общепринятых и стандартизированных кодировок текста, которая позволяет хранить символы Юникода, используя переменное количество байт (от 1 до 6).
никто не говорил что UTF-8 занимает 8бит кроме вас.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои фантазии про С++11 RAFA91 Общие вопросы C/C++ 265 18.07.2016 15:15
Проблема кодировок Anarios JavaScript, Ajax 2 25.12.2011 11:06
Стандартные средства = бесконечный полет фантазии. Alex Cones Софт 2 27.07.2009 17:10
Проблема кодировок!!! chekanoff Общие вопросы Delphi 4 04.12.2007 00:03