- PAK – Архив PAK (Packed File)
- Расширение PAK
- Чем открыть файл PAK
- Описание расширения PAK
- Другие программы, связанные с расширением PAK
- Кунг-фу стиля Linux: PDF для пингвинов
- Графические инструменты
- Маскировка текста
- Волшебство командной строки
- Путешествие из текста в PDF и обратно
- Инструменты для решения особых задач печати документов и другие инструменты
- Итоги
- Символы Unicode: о чём должен знать каждый разработчик
- Введение в кодировку
- Краткая история кодировки
- Проблемы с ASCII
- Что такое кодовые страницы ASCII?
- Безумие какое-то.
- Так появился Unicode
- Unicode Transform Protocol (UTF)
- Что такое UTF-8 и как она работает?
- Напоследок про UTF
- Это всё?
- Заключение
PAK – Архив PAK (Packed File)
Расширение PAK
Чем открыть файл PAK
В Windows: Smith Micro StuffIt Deluxe, Corel WinZip, ESTsoft ALZip, Avanquest PowerDesk Pro
В Mac OS: Smith Micro StuffIt Deluxe
Описание расширения PAK
Популярность:
Раздел: Архивы
Расширение PAK – это сжатый формат архива, появившийся в MS-DOS, который может содержать большое количество файлов. Данные в файле PAK могут быть сжаты или несжатый, но, как правило, сжатые с помощью сжатия ZLIB.
HEX код: 1A
Другие программы, связанные с расширением PAK
- Файл ресурсов игр
Расширение .PAK файла используется в некоторых компьютерных играх в качестве архива ресурсов. .pak – это файлы архивов или сжатых файлов, которые входят в различные игры, в виде графических файлов, спрайтов, звуков, музыки, объектов и других данных, которые необходимы для того, чтобы играть в игру. Некоторые утилиты, часто разработанные фанатами той или иной игры, могут извлечь содержимое таких файлов. Вероятно, наиболее используемая утилита – это Dragon UnPACker, который может получить доступ к содержимому файлов ресурсов для множества игр. Некоторые .pak файлы могут быть просто заархивированны распространенными форматами архивов, таких как RAR или ZIP и их расширение просто переименовано в PAK.
Известные игры, которые используют формат PAK для некоторых своих файлов ресурсов:
Относится к разделу Игры.
Чем открыть файл PAK
В Windows: Dragon UnPACKer, Leinen PAK Explorer, Pak Explorer, Sprite Explorer, DePacker, QuArK
Популярность:
HEX код: 4D 41 53 53 49 56 45 46 49 4C 45 00 (Massive game data) или 50 41 43 4B (Архив Quake)
- Файл объектов Simutrans
Файл используется Simutrans, бесплатной игрой-симулятором транспорта, содержит игровые графические объекты и свойства, скомпилированные из текстовых файлов с данными .dat и файла с изображением PNG. Используется для хранения транспортных средств, зданий, рельефа местности и других объектов в игре.
Чтобы изменить Simutrans объекты, пользователи обычно не могут редактировать непосредственно PAK файлы. Вместо этого, они, как правило загружают исходные DAT и PNG файлы, используемые для упаковки файлов .PAK, изменяют файлы, а затем снова упаковывают содержимое в новый файл PAK. .PAK файлы создаются с помощью программы MakeObj.exe.
ПРИМЕЧАНИЕ: PakBuilder представляет собой графический интерфейс программы для создания PAK файлов, но он не может открыть их.
Относится к разделу Игры.
Чем открыть файл PAK
В Windows: Simutrans, PakBuilder
В Mac OS: Simutrans
В Linux: Simutrans
Популярность:
HEX код: 53 69 6D 75 74 72 61 6E 73 20 6F 62 6A 65 63 74
- Архив карты Sygic
Файл PAK – это запакованная карта для Sygic. Sygic является словацким брендом автомобильных систем навигации для мобильных телефонов. Sygic разрабатывает и продает GPS навигацию с голосовыми подсказками для широкого круга мобильных устройств. Sygic продает своё GPS программное обеспечение по всему миру на более чем 30 языках, включая китайский, арабский, персидский, малайский, греческий, русский и европейских языках, работая вместе с поставщиками карт и поддерживает карты для всех регионов. Относится к разделу Архивы.
Популярность:
HEX код: 31 6B 61 70
- Самораспаковывающийся файл CrazyTalk
Расширение PAK связанно с программным обеспечением анимации CrazyTalk. .PAK файл, используемый в этой программе, содержит cамораспаковывающийся архив. Относится к разделу Архивы.
Популярность:
- Файл Orgadata LogiKal
Расширение PAK файла связанно с LogiKal, немецкой программой, предназначенной для архитектуры и металлообработки, разработана и продается Orgdata. Относится к разделу Другие файлы.
Популярность:
Источник
Кунг-фу стиля Linux: PDF для пингвинов
Вначале PostScript представлял собой язык программирования для принтеров. И хотя PostScript-принтеры всё ещё не потеряли актуальности, существует и множество других форматов, в которых можно отправлять данные на печать. Но благодаря PostScript появился Portable Document Format — PDF, который стал невообразимо популярным. Пожалуй, не проходит и дня, чтобы каждый из нас не просмотрел бы какой-нибудь PDF-документ на своём компьютере. Конечно, есть и форматы, конкурирующие с PDF, но им, в сравнении с PDF, принадлежит лишь небольшая доля рынка. Просмотр PDF-файлов в Linux — это не проблема. А как насчёт их редактирования? Как оказалось, это тоже несложно, правда, только если знать о том, как именно это делается.
Графические инструменты
Существует множество инструментов для редактирования PDF-файлов в Linux. Главная проблема тут — качество получаемого результата. Для редактирования PDF-файлов можно воспользоваться, например, LibreOffice Draw, Inkscape или даже GIMP. Эти инструменты, как правило, отлично справляются с простыми задачами, например — когда нужно лишь убрать что-то из документа, перекрыв это белым прямоугольником, или когда надо сделать в документе какое-то примечание. А вот если речь идёт о более сложных изменениях, или о получении документов, элементы которых выверены до последнего пикселя, то эти инструменты для решения таких задач вполне могут и не подойти.
Редактирование PDF-документа в GIMP
Основная сложность тут в том, что большинство подобных инструментов работают с PDF-документами как с изображениями, или, как минимум, как с коллекциями объектов. Например, текстовые колонки, вероятно, будут преобразованы в наборы отдельных строк. Изменение чего-либо, что вызывает переход текста на новую строку, приведёт к необходимости ручного изменения других строк. А иногда то, что выглядит как текст, текстом, на самом деле, не является. Текст может быть представлен изображениями. Это сильно зависит в первую очередь от того, как именно был создан конкретный PDF-файл.
Если вы не против использования онлайн-инструментов, то вам, в деле работы с PDF, может пригодиться PDFEscape — бесплатный и весьма достойный редактор. Среди других вариантов можно отметить Scribus и Okular. Оба эти инструмента, на самом деле, не умеют редактировать файлы, но могут импортировать их в виде изображений, с которыми уже можно работать. Например, в Okular, в режиме предварительного просмотра документов, можно добавлять в документы аннотации, вроде тех, которыми отмечают самое интересное, и элементы, нарисованные от руки.
Неудивительно то, что emacs умеет выводить PDF-файлы при запуске под X. Можно использовать Control+C Control+C для переключения на просмотр текстового представления файла. В конце концов, большинство PDF-файлов представляют собой файлы, содержащие текст, а emacs поддерживает даже работу с бинарными файлами. Поэтому, если вы не против поработать с внутренним содержимым PDF-файлов, которое очень похоже на PostScript, вы можете редактировать PDF-файлы в emacs или в каком-нибудь другом текстовом редакторе.
Существует несколько специализированных платных PDF-редакторов и как минимум один опенсорсный редактор такого рода. Но, конечно, как и для решения большинства задач в Linux, для редактирования PDF-файлов можно пользоваться инструментами командной строки.
Маскировка текста
Проблема работы с PDF-файлами, представленными в виде обычного текста, заключается в том, что, даже при просмотре их emacs, текстовые данные в таких файлах часто сжаты и, в результате, нечитаемы. Например, буквы, из которых состоят слова, могут быть разделены кодом, форматирующим их, или другими данными. Поэтому поискать некий текст в подобных файлах, вполне возможно, не получится.
PDF-файлы можно конвертировать в формат, при использовании которого сжатие не слишком сильно портит текст, но это — тоже не панацея. Например, если открыть следующий фрагмент кода статьи про любительскую радиосвязь и задаться целью изменить слово «convention», то сложно будет понять даже то, где именно находится это слово. Но оно, тем не менее, где-то здесь:
3 0 obj > stream
Волшебство командной строки
Существует такой инструмент — qpdf , который умеет конвертировать PDF-файлы в другие PDF-файлы. Он может оптимизировать эти файлы в расчёте на их размещение в интернете или в расчёте на редактирование текста. Он умеет выполнять простые операции вроде удаления страниц или объединения фрагментов нескольких файлов. Вы можете взглянуть на документацию по нему. В вышеприведённом примере мы воспользовались режимом QDF для создания совершенно нормального PDF-файла, все объекты которого размещены в соответствии с их порядковыми номерами, в котором используется обычный для Unix способ завершения строк. Такие свойства выходных файлов упрощают их редактирование в обычных текстовых редакторах, но, как мы уже видели, это, всё равно, не такая уж и простая задача. Например, довольно-таки сложно удалить объект целиком, но если избавиться ото всех его упоминаний, то можно, воспользовавшись fix-qdf , воссоздать нормальный QDF-файл.
Ещё один способ выполнения простых правок PDF-документов предусматривает использование PDFtk Server (PDFtk, без «Server», это графический набор инструментов для Windows). С помощью PDFtk можно объединять или разделять документы, поворачивать страницы и решать много других распространённых задач. Например — вот как объединить все материалы двух файлов:
Можно сделать то же самое, но пропустив, скажем, страницу №9:
Ещё можно перемешивать страницы объединённых документов, располагая их в нужном порядке:
Путешествие из текста в PDF и обратно
Если нужно, пользуясь инструментами командной строки, преобразовать текст в PDF, решить эту задачу можно разными способами. Например, существует отличный инструмент Pandoc, который позволяет преобразовывать материалы, оформленные с помощью одних языков разметки, в материалы, оформленные с помощью других способов описания документов. В частности, речь идёт о возможности преобразования практически всего чего угодно в PDF.
Ещё можно использовать различные комбинации ps2pdf (вместе с инструментом для генерирования PostScript-данных), pdf2text (этот инструмент входит в состав пакета poppler-utils) или Ghostscript для создания PDF-файлов или для извлечения из них текстовых данных. Надо сказать, что Ghostscript — это весьма мощный инструмент, среди возможностей которого можно отметить преобразование PDF-файлов в различные графические форматы. Это может пригодиться, если нужно, например, выводить их на веб-страницах в виде изображений.
Инструменты для решения особых задач печати документов и другие инструменты
Иногда нужно модифицировать PDF-файл в расчёте на то, что он будет определённым образом выведен на печать. Мы уже говорили, например, о том, как совмещать нечётные и чётные страницы документов, но есть и другие способы подготовки документов к печати:
- pdfxup — инструмент, задействующий возможности pdflatex и Ghostscript для размещения нескольких PDF-страниц (например — двух) на одной печатной странице.
- pdfjam — использует LaTeX для размещения документов на страницах разных размеров или для вывода нескольких страниц документа на одной печатной странице.
- pdfposter — умеет создавать печатные изображения огромных размеров на нескольких страницах, беря за основу одну страницу.
Если вы предпочитаете инструменты с графическим интерфейсом — можете взглянуть на PDFsam Basic. А если вас интересует ПО для работы с PDF, написанное на Java — обратите внимание на Multivalent.
Итоги
В Linux существует множество способов решения одних и тех же повседневных задач. Это справедливо и для задач, связанных с PDF-документами. Но иногда самое сложное заключается не в том, чтобы решить задачу, а в том, чтобы найти инструмент, который идеально подходит под требования и стиль работы пользователя.
Чем вы пользуетесь для редактирования PDF-файлов в Linux?
Источник
Символы Unicode: о чём должен знать каждый разработчик
Если вы пишете международное приложение, использующее несколько языков, то вам нужно кое-что знать о кодировке. Она отвечает за то, как текст отображается на экране. Я вкратце расскажу об истории кодировки и о её стандартизации, а затем мы поговорим о её использовании. Затронем немного и теорию информатики.
Введение в кодировку
Компьютеры понимают лишь двоичные числа — нули и единицы, это их язык. Больше ничего. Одно число называется байтом, каждый байт состоит из восьми битов. То есть восемь нулей и единиц составляют один байт. Внутри компьютеров всё сводится к двоичности — языки программирования, движений мыши, нажатия клавиш и все слова на экране. Но если статья, которую вы читаете, раньше была набором нулей и единиц, то как двоичные числа превратились в текст? Давайте разберёмся.
Краткая история кодировки
На заре своего развития интернет был исключительно англоязычным. Его авторам и пользователям не нужно было заботиться о символах других языков, и все нужды полностью покрывала кодировка American Standard Code for Information Interchange (ASCII).
ASCII — это таблица сопоставления бинарных обозначений знакам алфавита. Когда компьютер получает такую запись:
то с помощью ASCII он преобразует её во фразу «Hello world».
Один байт (восемь бит) был достаточно велик, чтобы вместить в себя любую англоязычную букву, как и управляющие символы, часть из которых использовалась телепринтерами, так что в те годы они были полезны (сегодня уже не особо). К управляющим символам относился, например 7 (0111 в двоичном представлении), который заставлял компьютер издавать сигнал; 8 (1000 в двоичном представлении) — выводил последний напечатанный символ; или 12 (1100 в двоичном представлении) — стирал весь написанный на видеотерминале текст.
В те времена компьютеры считали 8 бит за один байт (так было не всегда), так что проблем не возникало. Мы могли хранить все управляющие символы, все числа и англоязычные буквы, и даже ещё оставалось место, поскольку один байт может кодировать 255 символов, а для ASCII нужно только 127. То есть неиспользованными оставалось ещё 128 позиций в кодировке.
Вот как выглядит таблица ASCII. Двоичными числами кодируются все строчные и прописные буквы от A до Z и числа от 0 до 9. Первые 32 позиции отведены для непечатаемых управляющих символов.
Проблемы с ASCII
Позиции со 128 по 255 были пустыми. Общественность задумалась, чем их заполнить. Но у всех были разные идеи. Американский национальный институт стандартов (American National Standards Institute, ANSI) формулирует стандарты для разных отраслей. Там утвердили позиции ASCII с 0 по 127. Их никто не оспаривал. Проблема была с остальными позициями.
Вот чем были заполнены позиции 128-255 в первых компьютерах IBM:
Какие-то загогулины, фоновые иконки, математические операторы и символы с диакретическим знаком вроде é. Но разработчики других компьютерных архитектур не поддержали инициативу. Всем хотелось внедрить свою собственную кодировку во второй половине ASCII.
Все эти различные концовки назвали кодовыми страницами.
Что такое кодовые страницы ASCII?
Здесь собрана коллекция из более чем 465 разных кодовых страниц! Существовали разные страницы даже в рамках какого-то одного языка, например, для греческого и китайского. Как можно было стандартизировать этот бардак? Или хотя бы заставить его работать между разными языками? Или между разными кодовыми страницами для одного языка? В языках, отличающихся от английского? У китайцев больше 100 000 иероглифов. ASCII даже не может всех их вместить, даже если бы решили отдать все пустые позиции под китайские символы.
Эта проблема даже получила название Mojibake (бнопня, кракозябры). Так говорят про искажённый текст, который получается при использовании некорректной кодировки. В переводе с японского mojibake означает «преобразование символов».
Пример бнопни (кракозябров).
Безумие какое-то.
Именно! Не было ни единого шанса надёжно преобразовывать данные. Интернет — это лишь монструозное соединение компьютеров по всему миру. Представьте, что все страны решили использовать собственные стандарты. Например, греческие компьютеры принимают только греческий язык, а английские отправляют только английский. Это как кричать в пустой пещере, тебя никто не услышит.
ASCII уже не удовлетворял жизненным требованиям. Для всемирного интернета нужно было создать что-то другое, либо пришлось бы иметь дело с сотнями кодовых страниц.
��� Если только ������ вы не хотели ��� бы ��� читать подобные параграфы. �֎֏0590��׀ׁׂ׃ׅׄ׆ׇ
Так появился Unicode
Unicode расшифровывают как Universal Coded Character Set (UCS), и у него есть официальное обозначение ISO/IEC 10646. Но обычно все используют название Unicode.
Этот стандарт помог решить проблемы, возникавшие из-за кодировки и кодовых страниц. Он содержит множество кодовых пунктов (кодовых точек), присвоенных символам из языков и культур со всего мира. То есть Unicode — это набор символов. С его помощью можно сопоставить некую абстракцию с буквой, на которую мы хотим ссылаться. И так сделано для каждого символа, даже египетских иероглифов.
Кто-то проделал огромную работу, сопоставляя каждый символ во всех языках с уникальными кодами. Вот как это выглядит:
Префикс U+ говорит о том, что это стандарт Unicode, а число — это результат преобразования двоичных чисел. Стандарт использует шестнадцатеричную нотацию, которая является упрощённым представлением двоичных чисел. Здесь вы можете ввести в поле что угодно и посмотреть, как это будет преобразовано в Unicode. А здесь можно полюбоваться на все 143 859 кодовых пунктов.
Уточню на всякий случай: речь идёт о большом словаре кодовых пунктов, присвоенных всевозможным символам. Это очень большой набор символов, не более того.
Осталось добавить последний ингредиент.
Unicode Transform Protocol (UTF)
UTF — протокол кодирования кодовых пунктов в Unicode. Он прописан в стандарте и позволяет кодировать любой кодовый пункт. Однако существуют разные типы UTF. Они различаются количеством байтов, используемых для кодировки одного пункта. В UTF-8 используется один байт на пункт, в UTF-16 — два байта, в UTF-32 — четыре байта.
Но если у нас есть три разные кодировки, то как узнать, какая из них применяется в конкретном файле? Для этого используют маркер последовательности байтов (Byte Order Mark, BOM), который ещё называют сигнатурой кодировки (Encoding Signature). BOM — это двухбайтный маркер в начале файл, который говорит о том, какая именно кодировка тут применена.
В интернете чаще всего используют UTF-8, она также прописана как предпочтительная в стандарте HTML5, так что уделю ей больше всего внимания.
Этот график построен в 2012-м, UTF-8 становилась доминирующей кодировкой. И всё ещё ею является.
Что такое UTF-8 и как она работает?
UTF-8 кодирует с помощью одного байта каждый кодовый пункт Unicode с 0 по 127 (как в ASCII). То есть если вы писали программу с использованием ASCII, а ваши пользователи применяют UTF-8, они не заметят ничего необычного. Всё будет работать как задумано. Обратите внимание, как это важно. Нам нужно было сохранить обратную совместимость с ASCII в ходе массового внедрения UTF-8. И эта кодировка ничего не ломает.
Как следует из названия, кодовый пункт состоит из 8 битов (один байт). В Unicode есть символы, которые занимают несколько байтов (вплоть до 6). Это называют переменной длиной. В разных языках удельное количество байтов разное. В английском — 1, европейские языки (с латинским алфавитом), иврит и арабский представлены с помощью двух байтов на кодовый пункт. Для китайского, японского, корейского и других азиатских языков используют по три байта.
Если нужно, чтобы символ занимал больше одного байта, то применяется битовая комбинация, обозначающая переход — он говорит о том, что символ продолжается в нескольких следующих байтах.
И теперь мы, как по волшебству, пришли к соглашению, как закодировать шумерскую клинопись (Хабр её не отображает), а также значки emoji!
Подытожив сказанное: сначала читаем BOM, чтобы определить версию кодировки, затем преобразуем файл в кодовые пункты Unicode, а потом выводим на экран символы из набора Unicode.
Напоследок про UTF
Коды являются ключами. Если я отправлю ошибочную кодировку, вы не сможете ничего прочесть. Не забывайте об этом при отправке и получении данных. В наших повседневных инструментах это часто абстрагировано, но нам, программистам, важно понимать, что происходит под капотом.
Как нам задавать кодировку? Поскольку HTML пишется на английском, и почти все кодировки прекрасно работают с английским, мы можем указать кодировку в начале раздела .
Важно сделать это в самом начале , поскольку парсинг HTML может начаться заново, если в данный момент используется неправильная кодировка. Также узнать версию кодировки можно из заголовка Content-Type HTTP-запроса/ответа.
Если HTML-документ не содержит упоминания кодировки, спецификация HTML5 предлагает такое интересное решение, как BOM-сниффинг. С его помощью мы по маркеру порядка байтов (BOM) можем определить используемую кодировку.
Это всё?
Unicode ещё не завершён. Как и в случае с любым стандартом, мы что-то добавляем, убираем, предлагаем новое. Никакие спецификации нельзя назвать «завершёнными». Обычно в год бывает 1-2 релиза, найти их описание можно здесь.
Если вы дочитали до конца, то вы молодцы. Предлагаю сделать домашнюю работу. Посмотрите, как могут ломаться сайты при использовании неправильной кодировки. Я воспользовался этим расширением для Google Chrome, поменял кодировку и попытался открывать разные страницы. Информация была совершенно нечитаемой. Попробуйте сами, как выглядит бнопня. Это поможет понять, насколько важна кодировка.
Заключение
При написании этой статьи я узнал о Майкле Эверсоне. С 1993 года он предложил больше 200 изменений в Unicode, добавил в стандарт тысячи символов. По состоянию на 2003 год он считался самым продуктивным участником. Он один очень сильно повлиял на облик Unicode. Майкл — один из тех, кто сделал интернет таким, каким мы его сегодня знаем. Очень впечатляет.
Надеюсь, мне удалось показать вам, для чего нужны кодировки, какие проблемы они решают, и что происходит при их сбоях.
Источник