- Как определить кодировку файла в Mac OS по командной строке 2021
- 5 Terminal Commands EVERY Mac User Should Know!
- Определение кодировки файла и набора символов с помощью командной строки в Mac OS
- Как определить кодировку файлов в Mac OS с помощью командной строки
- Определение кодировки файлов и набора символов через командную строку в Mac OS
- Как определить кодировку файла в OS X?
- Как определить кодировку файлов в OSX?
- 15 ответов
Как определить кодировку файла в Mac OS по командной строке 2021
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
Основной синтаксис выглядит следующим образом:
файл -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]
Я обнаружил 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; это сильно зависит от кодировки шрифта, который вы используете, и от того, какие глифы у этого шрифта есть в наличии.
Поскольку вы не приводите конкретный пример, трудно точно определить, в чем проблема — пытаетесь ли вы использовать глиф, которого нет в вашем шрифте, или не используете правильную кодировку шрифта в первом место.
Вот минимальный пример, показывающий, как несколько символов 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) затем сохраните файл.
они типа 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 там, так что есть монстры. Я пытался предотвратить неблагоприятные последствия, используя его для файлов со случайным суффиксом, но я не даю никаких обещаний.
Источник