Узнать кодировку файла mac os

Как определить кодировку файла в Mac OS по командной строке 2021

5 Terminal Commands EVERY Mac User Should Know!

  • 5 Terminal Commands EVERY Mac User Should Know!

    Вы можете определить кодировку файлов и набор символов с помощью командной строки в Mac OS (и Linux) с помощью команды «file», которая помогает получить общую и конкретную информацию о типе файла.

    Это, вероятно, не будет уместным советом для многих пользователей, но если вам необходимо работать с определенным набором символов для чего-либо или вам нужно знать, что тип файла, кодировка или набор символов для введенного элемента, между прочим из командной строки, то это сделает свое дело.

    Команда file работает в Mac OS и Mac OS X, а также в Linux и многих других Unix-вариациях, что делает этот трюк полезным для сценариев и других аналогичных целей.

    Определение кодировки файла и набора символов с помощью командной строки в Mac OS

    Основной синтаксис выглядит следующим образом:

    file -I (input file)

    (В случае, если это не было очевидно, это заглавная буква «i» в качестве флага, как в -I, а не строчная буква L)

    Нажатие на return с правильным именем файла в качестве ввода покажет набор символов, такой как UTF-8, us-ascii, двоичный, 8-битный и т. Д.

    Например, скажем, мы проверяем набор символов и кодировку файла с именем «text.txt», тогда синтаксис будет выглядеть так:

    $ file -I text.txt
    text.txt: text/plain; charset=unknown-8bit

    «Text / plain» — тип файла, а «unknown-8bit» — кодировка файла набора символов.

    Вы также можете выполнить команду file буквально для любого другого файла, будь то изображения, архивы, исполняемые файлы или что-либо еще, на что вы хотите указать команду. Это может быть полезно, если вы автоматизируете что-то, чтобы определить тип файла, чтобы затем запустить соответствующую команду, возможно, после того, как файл был загружен с помощью curl, и необходимо определить тип архива, прежде чем можно будет выполнить правильную команду.

    $ file -I DownloadedFile.zip
    DownloadedFile.zip: application/zip; charset=binary

    Существует много других применений для проверки набора символов, кодировки и типа файла с помощью командной строки с помощью команды «file», а флаг -I является лишь одним из множества доступных параметров. Посетите страницу справочника для файла, чтобы узнать больше, если вы заинтересованы, и не забудьте проверить наши другие советы по командной строке (или перечислить все команды терминала, доступные на Mac, и немного повеселиться).

    Знаете ли вы другой или лучший способ проверить кодировку файла и набор символов с помощью командной строки в Mac OS? Дайте нам знать об этом в комментариях!

    Источник

    Как определить кодировку файлов в Mac OS с помощью командной строки

    Вы можете определить кодировку и символы файлов, установленные в командной строке в Mac OS (и linux), используя команду «файл», которая помогает получить общую и конкретную информацию о типе файла.

    Вероятно, это не будет подходящим советом для многих пользователей, но если вам требуется работать с определенным набором символов для чего-то или вам нужно знать, какой тип файла, кодировка или набор символов введенного элемента командной строки, то это сделает трюк.

    Команда файла работает в Mac OS и Mac OS X, а также в Linux и многих других версиях unix, что делает этот трюк полезным для сценариев и других подобных целей.

    Определение кодировки файлов и набора символов через командную строку в Mac OS

    Основной синтаксис выглядит следующим образом:

    Читайте также:  Почему шлюз установленный по умолчанию недоступен windows

    файл -I (входной файл)

    (В случае, если это не было очевидно, это капитал «i» в качестве флага, как в -I, а не в нижнем регистре L)

    Нажатие возврата с правильным именем файла, так как вход будет отображать набор символов, такой как UTF-8, us-ascii, двоичный, 8 бит и т. Д.

    Например, допустим, мы проверяем набор символов и кодировку файла с именем «text.txt», тогда синтаксис будет выглядеть так:

    $ file -I text.txt
    text.txt: text / plain; кодировка = неизвестно-8bit

    «Text / plain» — это тип файла, а «unknown-8bit» — кодировка файла набора символов.

    Вы также можете выдать команду файла буквально любому другому файлу, будь то изображения, архивы, исполняемые файлы или что-то еще, на что вы хотите указать команду. Это может быть приятно, если вы автоматизируете что-то для определения типа файла, а затем запускаете соответствующую команду, возможно, после того, как файл был загружен с помощью curl, и тип архива должен быть определен до того, как будет выполнена правильная команда.

    $ file -I СкачанFile.zip
    ЗагруженоFile.zip: application / zip; кодировка = двоичная

    Существует много других применений для проверки набора символов, кодирования файлов и типа файла через командную строку с помощью команды «файл», а флаг -I — только один из множества доступных вариантов. Просмотрите страницу руководства для файла, чтобы узнать больше, если это интересно, и не забудьте ознакомиться с нашими другими советами в командной строке (или перечислить все команды терминала, доступные на Mac, и немного повеселиться).

    Вы знаете другой или лучший способ проверить кодировку и набор символов через командную строку в Mac OS? Дайте нам знать об этом в комментариях!

    Источник

    Как определить кодировку файла в OS X?

    Я пытаюсь ввести некоторые символы UTF-8 в файл LaTeX в TextMate (который говорит, что его кодировка по умолчанию — UTF-8), но LaTeX, кажется, не понимает их.

    Запуск cat my_file.tex показывает символы правильно в терминале. Запуск ls -al показывает то, что я никогда раньше не видел: «@» в списке файлов:

    (И да, я использую \usepackage[utf8] в LaTeX.)

    Я обнаружил iconv , но это, кажется, не в состоянии сказать мне, что такое кодировка — она ​​преобразуется только после того, как я это выясню.

    В @ означает , что файл имеет расширенные атрибуты файлов , связанных с ним. Вы можете запросить их, используя getxattr() функцию.

    Нет определенного способа определить кодировку файла. Прочтите этот ответ, он объясняет почему.

    Есть инструмент командной строки, enca , который пытается угадать кодировку. Вы можете проверить это.

    Использование -I опции (это заглавная буква i) в команде file, похоже, показывает кодировку файла.

    В Mac OS X команда file -I (заглавная i) даст вам правильный набор символов, при условии, что тестируемый файл содержит символы вне основного диапазона ASCII.

    Например, если вы заходите в Терминал и используете vi для создания файла, например. vi test.txt затем вставьте несколько символов и вставьте символ с акцентом (попробуйте ALT-e, а затем e), затем сохраните файл.

    Они печатают, file -I text.txt и вы должны получить такой результат:

    test.txt: text/plain; charset=utf-8

    где-то в моей конфигурации bash

    так что я просто набираю

    На моем ванильном OSX Yosemite он дает более точные результаты, чем «file -I»:

    Вы также можете конвертировать из одного типа файла в другой, используя следующую команду:

    Использование file команды с —mime-encoding параметром (например file —mime-encoding some_file.txt ) вместо параметра -I работает в OS X и имеет дополнительное преимущество, заключающееся в исключении типа mime, «text / plain», который вам, вероятно, не важен.

    Классический 8-битный LaTeX очень ограничен, в котором могут использоваться символы UTF8; это сильно зависит от кодировки шрифта, который вы используете, и от того, какие глифы у этого шрифта есть в наличии.

    Поскольку вы не приводите конкретный пример, трудно точно определить, в чем проблема — пытаетесь ли вы использовать глиф, которого нет в вашем шрифте, или не используете правильную кодировку шрифта в первом место.

    Читайте также:  Uralsoft сборки windows для всех

    Вот минимальный пример, показывающий, как несколько символов UTF8 могут использоваться в документе LaTeX:

    Возможно, вам повезет больше с кодировкой [utf8x], но следует немного предупредить, что она больше не поддерживается и имеет некоторые отличительные особенности по сравнению с [utf8] (насколько я помню; прошло некоторое время с тех пор, как я на нее смотрел). Но если это поможет, это все, что важно для вас.

    Знак @ означает, что файл имеет расширенные атрибуты . xattr file показывает, какие атрибуты у него есть, также xattr -l file показывает значения атрибутов (которые иногда могут быть большими — попробуйте, например, xattr /System/Library/Fonts/HelveLTMM увидеть шрифт старого стиля, который существует в ветке ресурсов).

    Набрав file myfile.tex в терминале, иногда можно узнать кодировку и тип файла, используя серию алгоритмов и магических чисел. Это довольно полезно, но не полагайтесь на него, предоставляя конкретную или надежную информацию.

    Localizable.strings Файл (находится в локализованных приложений Mac OS X) , как правило , сообщается, UTF-16 исходный файл C.

    Synalyze It! позволяет сравнивать текст или байты во всех кодировках, которые предлагает библиотека ICU . Используя эту функцию, вы обычно сразу видите, какая кодовая страница имеет смысл для ваших данных.

    Вы можете попробовать загрузить файл в окно Firefox, а затем перейти к View — Character Encoding. Рядом с типом кодировки файла должна стоять галочка.

    Какой латекс вы используете? Когда я использовал teTeX, мне пришлось вручную загрузить пакет Unicode и добавить его в мои файлы .tex:

    Теперь я перешел на XeTeX из пакета TeXlive 2008 ( здесь ), это еще проще:

    Что касается обнаружения кодировки файла, вы можете поиграть с ней file(1) (но она довольно ограничена), но, как сказал кто-то другой, это сложно.

    Простой способ проверить кодировку может быть просто проверить файл в шестнадцатеричном редакторе или аналогичном. (или напишите программу для проверки) Посмотрите на двоичные данные в файле. Формат UTF-8 довольно легко распознать. Все символы ASCII представляют собой отдельные байты со значениями ниже 128 (0x80). Многобайтовые последовательности следуют шаблону, показанному в статье вики.

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

    Я реализовал скрипт bash ниже, он работает для меня.

    Сначала он пытается iconv из кодировки, возвращаемой file —mime-encoding в utf-8 .

    Если это не удается, он проходит через все кодировки и показывает разницу между исходным и перекодированным файлом. Он пропускает кодировки, которые производят большой вывод различий («большой», как определено MAX_DIFF_LINES переменной или вторым входным аргументом), так как это, скорее всего, неправильная кодировка.

    Если в результате использования этого скрипта произойдут «плохие вещи», не вините меня. Там rm -f есть и монстры. Я пытался предотвратить негативные последствия, используя его для файлов со случайным суффиксом, но я не даю никаких обещаний.

    Источник

    Как определить кодировку файлов в OSX?

    Я пытаюсь ввести некоторые символы UTF-8 в файл LaTeX в TextMate (который говорит, что его кодировка по умолчанию-UTF-8), но LaTeX, похоже, не понимает их. Бег!—1—> показывает символы правильно в терминале. Бег!—2—> показывает то, что я никогда не видел раньше: «@ » в файл выглядит так:

    (и, да, я использую usepackage[utf8] в латекс.)

    я нашел iconv , но это, похоже, не может сказать мне, что такое кодировка — он изменится, только когда я это выясню.

    15 ответов

    на @ означает, что файл имеет расширенные атрибуты файлов, связанных с ним. Вы можете запросить их с помощью

    С помощью -I (это заглавная i) опция в команде file, кажется, показывает кодировку файла.

    в Mac OS X команда file -I (capital i) даст вам правильный набор символов, пока файл, который вы тестируете, содержит символы за пределами основного диапазона ASCII.

    например, если вы заходите в терминал и используете vi для создания файла, например. vi test.txt затем вставьте несколько символов и включите акцентированный символ (попробуйте ALT-e, а затем e) затем сохраните файл.

    Читайте также:  Windows 10 конечная версия

    они типа file -I text.txt и вы должны получить такой результат:

    test.txt: text/plain; charset=utf-8

    вы также можете конвертировать из одного типа файлов в другой, используя следующую команду:

    aliased где-то в моей конфигурации bash как

    поэтому я просто набираю

    на моем ванильном OSX Yosemite он дает более точные результаты, чем «file-I»:

    используя с (например, file —mime-encoding some_file.txt ) вместо опции-I работает на OS X и имеет дополнительное преимущество, опуская тип mime, «text/plain», о котором вы, вероятно, не заботитесь.

    классический 8-битный LaTeX очень ограничен в том, какие символы UTF8 он может использовать; это сильно зависит от кодировки шрифта, который вы используете, и какие глифы этот шрифт доступен.

    поскольку вы не даете конкретный пример, трудно точно знать, где проблема — пытаетесь ли вы использовать глиф, которого нет у вашего шрифта, или вы не используете правильную кодировку шрифта в первую очередь.

    вот минимальный пример, показывающий, как в документе LaTeX можно использовать несколько символов UTF8:

    вам может повезти с кодировкой [utf8x], но будьте немного предупреждены, что она больше не поддерживается и имеет некоторые особенности по сравнению с [utf8] (насколько я помню, прошло некоторое время с тех пор, как я смотрел на нее). Но если это поможет, это все, что имеет значение для тебя.

    символ » @ » означает, что файл имеет расширенные атрибуты. xattr file показывает, какие атрибуты она имеет, xattr -l file также показывает значения атрибутов (которые иногда могут быть большими-попробуйте, например, xattr /System/Library/Fonts/HelveLTMM чтобы увидеть шрифт старого стиля, который существует в вилке ресурсов).

    введя file myfile.tex в терминале иногда могу сказать вам кодировку и тип файла, используя ряд алгоритмов и магических чисел. Это довольно полезно, но не полагайтесь на него, предоставляя конкретную или достоверную информацию.

    A Localizable.strings файл (найден в локализованных приложениях Mac OS X) обычно сообщается, что это исходный файл UTF-16 C.

    Synalyze Его! позволяет сравнивать текст или байты во всех кодировках в библиотека ICU предложения. Используя эту функцию, вы обычно сразу видите, какая кодовая страница имеет смысл для ваших данных.

    вы можете попробовать загрузить файл в окно firefox, а затем перейти к кодировке View-Character. Рядом с типом кодировки файла должен быть флажок.

    какой латекс вы используете? Когда я использовал teTeX, мне пришлось вручную загрузить unicode пакет и добавьте это в мой .файлы Tex:

    Теперь я переключился на XeTeX из пакета TeXlive 2008 (здесь), еще проще:

    Что касается обнаружения кодировки файла, вы можете играть с file(1) (но он довольно ограничен), но, как сказал кто-то другой, это сложно.

    грубым способом проверки кодировки может быть просто проверка файла в шестнадцатеричном редакторе или аналогичном. (или напишите программу для проверки) посмотрите на двоичные данные в файле. Формат UTF-8 довольно легко распознать. Все символы ASCII являются одиночными байтами со значениями ниже 128 (0x80) Многобайтовые последовательности следуют шаблону, показанному в статьи

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

    я реализовал сценарий bash ниже, он работает для меня.

    он сначала пытается iconv из кодировки, возвращенной file —mime-encoding to utf-8 .

    если это не удается, он проходит через все кодировки и показывает разницу между оригиналом и перекодируется файл. Он пропускает кодировки, которые производят большой выход diff («большой», как определено MAX_DIFF_LINES переменной или второй входной аргумент), так как это скорее всего неправильная кодировка.

    если «плохие вещи» произойти в результате использования этого скрипта, не вини меня. Есть rm -f там, так что есть монстры. Я пытался предотвратить неблагоприятные последствия, используя его для файлов со случайным суффиксом, но я не даю никаких обещаний.

    Источник

  • Оцените статью