ничего не заговариваюсь. я и говорю, что из реестра выгружается в чём-то двухбайтном. не уверен - wchar_t там или utf16le. просто раньше удивлялся, не особо акцентируясь. а теперь вот понятно стало с этими разъяснениями про то что раньше появилось - utf8 или wchar_t
Ты забыл от чего я "пылал". Там был апловский kext, написатый приблизительно в таком xml: <kext><param>PARAM1</param><value>VAL1</value> <param>PARAM2</param><value>VAL2</value> <param>PARAM3</param><value>VAL3</value> </kext> и менять местами теги, естественно, нельзя было. не удивлюсь, что там и пробелы лишние - тоже низзя. Я разорялся на предмет такого уёбищного использования возможностей XML - в стиле обычного текстового конфига, но нахера-то в xml-подобной обёртке. но самим аппловцам и программерам (rust'у например) было пофигу - "они просто юзали утилиту/либу - читающую и записывающую в kext". "они просто микроскопом забивали гвозди". а чо? вполне удобно же. А как ты в cvs будет сохранять поле, где нужно хранить кавычку? куотировать их все? а если там текст-диалог из какого-нить произведения? где сплошь кавычки? а вот "разделитель полей" вставлять в текстовое поле - не надо. или в ну очень редких случаях можно было б и закуотировать. вооо, об этом и говорю. а был бы спец.символ "разделитель полей" - очень много где стало бы жить сииильно проще.
Именно, и эскейпить саму кавычку в значениях. В качестве кавычки можно использовать другой символ. Малоиспользуемый. Если надо что-то необычное, я обычно использую символ |
value1☺value2☺bla "bla|" bla☺12345 value1☺value2☺bla "bla bla☺12345 value1☺value2"☺bla bla bla☺12345 нехай потом получатель иппется.
Парсить кастомные форматы руками - это интересное извращение. А программе пофигу какие там символы как делиметеры заданы. value1,value2,"bla ""bla|"" bla",12345 value1,value2,"bla ""bla bla",12345 value1,"value2""",bla bla bla,12345 Все прекрасно открывается экселем. Даже вот такое извращение: Code: value1,value2,"bla ""bla|"", bla",12345 value1,value2,"bla ""bla bla",12345 value1,"value2""",bla bla bla,12345 А теперь выгрузи это все в xml,json или что еще и сравним размеры. Не, CSV по объемам только бинарные форматы могут забороть.
Та кто ж спорит, что хороший формат если правильно записать. Хотя по инету, предпочитают гонять xml или json иногда пожатый gzip'ом.
utf8 потому и называется utf8 потому что кодируется в один байт. А Utf16 в два. Поэтому ты видишь "пробелы". А в utf8 для кириллицы будешь видеть кракозябры без пробелов. РІРѕС‚ такая РєРѕРґРёСЂРѕРІРєР°
UTF16 мне больше нравится тем что его и случайно не выйдет спутать с ASCII. Особенно если это UCS-2, где нету извращений с 4 байтовыми символами, в связи с чем размер текста и в символах и в байтах заранее известен. Но мечты мечты... (утирает скупую слезу по ламповому Win-1251).
" | " уже используется как pipe/пайпа. в ячейках таблицы можно располагать и шелловские команды а вот располагать в ячейках символы, обозначающие "разделитель полей" - вот не надо. по рукам бить. только в заквоченном виде. как вот только отображать "разделитель полей" в, например, браузере - не знаю. ну хоть бы и палками. только при копирвании - чтобы копировался не пайпа, а именно "разделитель полей/колонок".
У нас с внешними аудиторами соглашение использовать разделителем символ Æ Пока нигде ни с чем не пересеклось (за много лет уже). До этого разные символы периодически встречались в наименованиях чего-либо и ломали обмен.
Неправильный это подход, рассчитывать на то что некий символ прям никогда не попадется. Ненадежный. Но дело ваше, да.
Зато простой Они ни с чем кроме плоских таблиц не работают, хорошо хоть не в эксель грузят, MS Access используют Ну а мне проще из сиквела сохранить с настроенным разделителем да и всё.
я в линухе символ "bell" использую иногда который 0x07 https://ru.wikipedia.org/wiki/Управляющие_символы сколько лет оно уже нахрен не нужно? лет 30? 40? но, блять, надо сначала UTF-256 придумать и в стандарт внести, а потом уже озаботиться о нужности всякого говна мамонта в ASCII
мне начальничек сказанул как-то раз в дискуссионном запале - "а вот ты обрабатываешь список файлов по-строчно, а это неправильно! а вдруг мне захочется имя файла записать с символом \n ?" захотелось въебать. тому долбоёбу, кто повадится сделать такое и, сссука, сменить ему имя и фамилию в паспорте на слова, содержащие null, который \0 в ascii. чтоп, пидарасу, жилось краще... ну натуральное же вредительство!
Надо было сказать, что тогда это было бы что угодно - но не имя файла! Он бы еще с * и ? имя придумал.
plist, а не kext. Plist это "properties list", сериализация некоего словаря в файл. Kext это Kernel Extension, подгружаемый модуль ядра (в простонародье "драйвер" хотя не самое правильное название. И да text-based xml был одним из нескольких представлений. XML это всего навсего язык программирования^H разметки, и меня реально удивляла/забавляла такая бурная реакция. Мне, например, глубоко похрен если кто то будет использовать подмножества языка PostScript для рисования примитивных картинок, используя всего 0.1% возможностей. Или писать на Си программу которая только умеет вводить два числа и вычислять их сумму. Я не буду считать такое использование "некошерным" или "оскверняющим высокие принципы".
У МС, похоже, всегда была склонность к подходу "а давайте сделаем наши технологии немного несовместимыми, для того чтобы разработчики, пытающиеся использовать их на другие платформы поебались" Другого логического объяснения множеству фактов я просто не нахожу. Даже когда в очередном сотрудничестве с Эппл МС получила технологии и форматы трутайп шрифтов - первое что они сделали это "немножко изменили" стандарт, чтобы шрифты под винду не работали на той макоси тех времен. Сколько лет или десятков лет вижуальник под винду отказывался распознавать общепринятый и уже вошедший в стандарт тип "long long", и заставлял использовать нестандартный "_Int64t" или как он там назывался? Помню когда я изучал формат RTF из официальной документации МС, взял этот файл, сохранил МС Вордом для мака в RTF, открыл и увидел что микрософтовский продукт нарушает установленный Микрософтом же стандарт...