|
1 / 1 / 3
Регистрация: 03.04.2016
Сообщений: 51
|
||||||
Обработка utf-807.01.2018, 20:07. Показов 4347. Ответов 31
Метки нет (Все метки)
Здравствуйте. Для разминки черепа решил освоить работу с unicode в С
Для общего развития написал функцию split(). Но при проверке работоспособности столкнулся с проблемами. В некоторых случаях программа завершается с ошибкой.
0
|
||||||
| 07.01.2018, 20:07 | |
|
Ответы с готовыми решениями:
31
getBytes('UTF-16') даёт UTF-16LE или UTF-16BE? <globalization fileEncoding='utf-8' requestEncoding='utf-8' responseEncoding='utf-8' /> Конвертация из ASCII в UTF-32 или UTF-8 в UTF-32 |
|
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
|
||||
| 11.01.2018, 19:58 | ||||
![]() Добавлено через 1 минуту ![]() А китайские буквы сколько занимают? И в какой кодировке: UTF-8 или всё таки UTF-32? ... или для тебя они "без разницы"?
0
|
||||
|
Почетный модератор
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
|
||
| 12.01.2018, 00:07 | ||
|
0
|
||
| 12.01.2018, 04:28 | |
|
А сколько занимает эта эмодзи в UTF-8? *⚕️ (::FEMALE-DOCTOR:: - только маленькими, походу джика форума их не переваривает)
Добавлено через 9 минут Сории - не совсем понятно - я про это http://www.iemoji.com/view/emo... lth-worker
0
|
|
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
|||||
| 12.01.2018, 11:16 | |||||
|
0
|
|||||
| 12.01.2018, 17:29 | ||
|
Итого по ссылке 13 байт, а сам смайл является "спайкой" из "UTF-8 Character Count 4" При обработке текста эта группа должна обрабатывать целиком, иначе порвём смайлик и получим невесть что.
0
|
||
|
Почетный модератор
11561 / 4356 / 453
Регистрация: 12.06.2008
Сообщений: 12,457
|
||
| 12.01.2018, 18:33 | ||
|
0
|
||
| 12.01.2018, 20:45 | ||
|
Так что поддержка современного юникода - это головняк, и, я думаю, не только для C/C++... Добавлено через 9 минут Если уж эта "медичка" в "UTF-32 Hex 01F469, 200D, 2695, FE0F" занимает 9 байт, даже не 64бита..... Пора бы уж им определиться на UTF-128 и каждому придуманному символу/иероглифу свой код. Не по теме: Только к этому времени найдутся инопланетяне, у которых алфавит будет состоять из базовых 129 символознаков, которые в своей совокупности будут создавать символы, каждый со своим 15^129 значений/оттенков, из которых и будут создаваться слова...
0
|
||
| 14.01.2018, 07:53 | |
|
Я вот тут озадачился потренироваться с многобайтом и нарисовать человекоредактируемый парсер ini-файлов.
Есть конечно весьма годный https://github.com/ndevilla/iniparser но работает только с однобайтовым. Если ini в ASCII - проблем нет, если в UTF-8 - могут быть проблемы с национальными строками. А вот я хочу лопатить ini-файлы независимо от кодировки. Т.е. сделать так, что бы человек мог его редактировать и в линухе, и в винде. Если внутри либы проще файл сразу в wchar_t загнать, то в каком виде его хранить снаружи - виндо-пользователь не сможет его читать/редактировать utf-8, и наоборот. Ему придётся сначала использовать редактор умеющий нужную кодировку или конвертировать с помощью к-либо recode. Подскажите в какой кодировке лучше всего сохранять ini для любых ОСей, в том числе и MSDOS(ASCII)/древние_фри(KOI-8) Вообще, как быть???
0
|
|
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
|
| 14.01.2018, 09:31 | |
|
Самое универсальное - ASCII. Конечно, придется забыть о не-латинских символах. Либо портировать
iconv на целевую платформу и тогда использовать любую. Если забыть про всякую древность, лучше остановиться на UTF-8.
0
|
|
| 14.01.2018, 11:11 | |
|
В том-то и дело - в своей либе опционально хочу сохранять порядок и содержимое комментариев. Опять же - как использовать строковые переменные, значение которых может быть на любом языке.
Может плюнуть на это и работать только в текущей локали? Для ini - использовать utf-8, внутри либы сконвертировать в widechar и не париться с разбором...
0
|
|
|
4144 / 2722 / 433
Регистрация: 09.09.2017
Сообщений: 12,055
|
|
| 14.01.2018, 11:58 | |
|
Смотря что вы хотите делать с этими переменными. Если не собираетесь менять или искать подстроки, можно и внутри программы хранить в UTF-8 (обычные Си-строки).
0
|
|
| 14.01.2018, 12:11 | |
|
Нет менять обязательно + добавление отсутствующих "дефолтных". Тупо читать ini нет никакого интереса - смысл сохранять настройки прог в человекоредактируемом виде, и при этом избежать жирного кода. Готовых-то библиотек море, хоть в xml? хоть классические conf.
Учитывая bison и пр - вообще просто, но посмотрев на реализацию простенького ini через парсеры bison и etcю ужаснулся объёму кода - овер 100Кб экзешника... Хочу написать мелкое и шустрое, минималку, но с возможностями. Тупо альтернативу представленного выше iniparser, но мельче (нафига мне секции, нафига поиск по хэшу и т.п. - без этого, но и что бы комменты при сохранении ini оставались, и с языками проблем небыло). Скорее всего откажусь от переноса ini из одной ОС в другую - буду использовать системную_текущую локаль с конвертацией в widechar внутри либы и обратным сохранением в локаль. Т.е. для определённой ОСи ini файл вручную человеком будет редактироваться на ура, но не в другой ОСи - там recode и пр конвертаторы.
0
|
|
| 14.01.2018, 12:11 | |
|
XmlSerializer.Serialize() как поменять кодировку с UTF-16 на UTF-8 Изменить кодировку из utf-8 без bom в просто utf-8 Как создать рабочий XML в UTF-8? У меня исправно создаётся Windows-1251, но с UTF-8 проблема Разные кодировки файлов (ASCII, UTF-8, UTF-16) Преобразование Unicode (UTF-16) в UTF-8 и обратно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|