Это на самом деле не вопрос программирования, есть ли командная строка или инструмент Windows (Windows 7) для получения текущей кодировки текстового файла? Конечно, я могу написать небольшое приложение на C #, но я хотел знать, есть ли что-то уже встроенное?
206
Ответы:
Откройте свой файл, используя обычный старый ванильный блокнот, который поставляется с Windows.
Он покажет вам кодировку файла, когда вы нажмете « Сохранить как ... ».
Это будет выглядеть так:
Какой бы кодировкой не была выбрана по умолчанию, это ваша текущая кодировка для файла.
Если это UTF-8, вы можете изменить его на ANSI и нажать «Сохранить», чтобы изменить кодировку (или наоборот).
Я понимаю, что существует много разных типов кодирования, но это было все, что мне было нужно, когда мне сообщили, что наши экспортные файлы были в UTF-8, и они требовали ANSI. Это был разовый экспорт, поэтому «Блокнот» для меня.
К вашему сведению: я понимаю, что « Unicode » (как указано в «Блокноте») является неправильным обозначением UTF-16.
Более подробно об опции Unicode в блокноте : Windows 7 - UTF-8 и Unicdoe
источник
(Файл) инструмента командной строки (Linux) доступен в Windows через GnuWin32:
http://gnuwin32.sourceforge.net/packages/file.htm
Если у вас установлен git, он находится в C: \ Program Files \ git \ usr \ bin.
Пример:
источник
file
команду в Cygwin . Любой набор инструментов POSIX для Windows должен иметьfile
.Если на вашем компьютере с Windows есть «git» или «Cygwin», перейдите в папку, где находится ваш файл, и выполните команду:
Это даст вам детали кодирования всех файлов в этой папке.
источник
file *
командыfile --mime-encoding
должна получить кодировку для файлаЕще один инструмент, который я нашел полезным: https://archive.codeplex.com/?p=encodingchecker EXE можно найти здесь
источник
Вот мое понимание того, как определять семейство текстовых кодировок Unicode через BOM. Точность этого метода низкая, так как этот метод работает только с текстовыми файлами (в частности, с файлами Unicode), и по умолчанию используется,
ascii
когда отсутствует спецификация (как и большинство текстовых редакторов, по умолчанию будет,UTF8
если вы хотите соответствовать HTTP / веб-экосистеме). ).Обновление 2018 : я больше не рекомендую этот метод. Я рекомендую использовать file.exe из GIT или * nix tools в соответствии с рекомендациями @Sybren, и я покажу, как это сделать с помощью PowerShell, в более позднем ответе .
Рекомендация: Это может работать достаточно хорошо , если
dir
,ls
илиGet-ChildItem
только проверяет известные текстовые файлы, и когда вы смотрите только для «плохих кодировок» из известного списка инструментов. (т. е. SQL Management Studio по умолчанию использует UTF16, что нарушило GIT auto-cr-lf для Windows, которое было по умолчанию в течение многих лет.)источник
Get-FileEncoding
кажется, не существует в моей системе. Это пользовательский командлет?Get-FileEncoding
на шикарный код. Я даже рассмотрел punycode из python и nodejs, но эта маленькая версия достигает 80/20 для моего использования (больше похоже на 99/1). Если вы размещаете файлы других людей, я предлагаю вам использоватьfile
команду из ответа Syben ( stackoverflow.com/a/34766140/195755 ) или другой декодер Unicode производственного качества.default
кодируется (когда нет спецификации). Для XML, JSON и JavaScript по умолчанию используется UTF8, но пробег может отличаться.Я написал ответ № 4 (на момент написания). Но в последнее время я установил git на все мои компьютеры, поэтому теперь я использую решение @ Sybren. Вот новый ответ, который делает это решение удобным с powershell (без помещения всего git / usr / bin в PATH, что для меня слишком много).
Добавьте это к вашему
profile.ps1
:И используется , как:
file.exe --mime-encoding *
. Вы должны включить .exe в команду, чтобы псевдоним PS работал.Но если вы не настраиваете свой PowerShell profile.ps1, я предлагаю вам начать с моего: https://gist.github.com/yzorg/8215221/8e38fd722a3dfc526bbe4668d1f3b08eb7c08be0 и сохранить его в
~\Documents\WindowsPowerShell
. Безопасно использовать на компьютере без git, но выдает предупреждения, когда git не найден..Exe в команде также , как я использую
C:\WINDOWS\system32\where.exe
из PowerShell; и многие другие команды командной строки ОС, которые «скрыты по умолчанию» от powershell, * shrug *.источник
file
качестве псевдонима file.exe вместоfile.exe
¯ \ _ (ツ) _ / ¯dir | where Size -lt 10000
противwhere.exe git
.where.exe
чтобы отличить его отwhere
PS, который является встроенным псевдонимом дляWhere-Object
. Пример:where.exe git*
vsls . | where Size -lt 10000
file.exe
статического класса .NET, который вам может понадобиться в том же сценарии, который обнаруживает кодировку. Пример:[File]::SetCreationTime("readme.md", [DateTime]::Now)
.Простым решением может быть открытие файла в Firefox.
и кодировка текста появится в окне «Информация о странице».
Примечание. Если файл не в формате txt, просто переименуйте его в txt и повторите попытку.
PS Для получения дополнительной информации см. Эту статью.
источник
Установите git (в Windows вы должны использовать консоль git bash). Тип:
для всех файлов в текущем каталоге, или
для файлов во всех подкаталогах
источник
Вы можете использовать бесплатную утилиту под названием Encoding Recognizer (требуется Java). Вы можете найти это на http://mindprod.com/products2.html#ENCODINGRECOGNISER
источник
Подобно решению, указанному выше для Notepad, вы также можете открыть файл в Visual Studio, если вы его используете. В Visual Studio вы можете выбрать «Файл> Дополнительные параметры сохранения ...»
Поле со списком «Кодировка:» скажет вам, какая именно кодировка используется в данный момент для файла. Он содержит гораздо больше текстовых кодировок, чем Блокнот, поэтому он полезен при работе с различными файлами со всего мира и всем остальным.
Как и в «Блокноте», вы также можете изменить кодировку из списка параметров, а затем сохранить файл после нажатия «ОК». Вы также можете выбрать нужную кодировку с помощью параметра «Сохранить с кодировкой ...» в диалоговом окне «Сохранить как» (нажав стрелку рядом с кнопкой «Сохранить»).
источник
Здесь немного кода на C для надежного обнаружения ascii, bom's и utf8: https://unicodebook.readthedocs.io/guess_encoding.html
РЕДАКТИРОВАТЬ:
Версия PowerShell ответа C # от: Эффективный способ найти кодировку любого файла . Работает только с подписями (бомбами).
источник
Единственный способ сделать это - VIM или Notepad ++.
источник