当前位置:  开发笔记 > 编程语言 > 正文

如何确定OSX中的文件编码?

如何解决《如何确定OSX中的文件编码?》经验,为你挑选了7个好方法。

我正在尝试将一些UTF-8字符输入到TextMate中的LaTeX文件中(其默认编码为UTF-8),但LaTeX似乎并不理解它们.Running cat my_file.tex在Terminal中正确显示字符.跑步ls -al显示我以前从未见过的东西:文件列表中的"@":

-rw-r--r--@  1 me      users      2021 Feb 11 18:05 my_file.tex

(而且,是的,我正在使用\usepackage[utf8]{inputenc}LaTeX.)

我发现了iconv,但似乎无法告诉我编码是什么 - 它只会在我弄清楚之后转换.



1> Tim..:

-I在文件命令上使用(即大写i)选项似乎显示文件编码.

file -I {filename}


我需要使用-I
ASCII和UTF8是相同的,除非文件中有一个超出OxFF的字符或BOM.
这个函数似乎无法分辨ASCII和UTF-8之间的区别(似乎它们对于大多数美国字符是相同的,但不是全部,可能会检测到unicode位)
`file -I*`似乎对我来说很完美(在OSX上).一个系统抱怨许多文件之一的编码,而没有指定哪个.所有文件都是ascii,除了一个,这是utf-8.最有可能的罪魁祸首.

2> Cloudranger..:

在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


我可以确认OS X的情况,charset = us-ascii或charset = utf-8,具体取决于文件的内容

3> codelogic..:

@意味着该文件具有与之关联的扩展文件属性.您可以使用该getxattr()功能查询它们.

没有明确的方法来检测文件的编码.阅读这个答案,它解释了原因.

有一个命令行工具enca,它试图猜测编码.你可能想看一下.



4> RPM..:

您还可以使用以下命令从一种文件类型转换为另一种文件:

iconv -f original_charset -t new_charset originalfile > newfile

例如

iconv -f utf-16le -t utf-8 file1.txt > file2.txt



5> jmettraux..:
vim -c 'execute "silent !echo " . &fileencoding | q' {filename}

在我的bash配置中别名为

alias vic="vim -c 'execute \"silent !echo \" . &fileencoding | q'"

所以我只是输入

vic {filename}

在我的vanilla OSX Yosemite上,它产生比"file -I"更精确的结果:

$ file -I pdfs/udocument0.pdf
pdfs/udocument0.pdf: application/pdf; charset=binary
$ vic pdfs/udocument0.pdf
latin1
$
$ file -I pdfs/t0.pdf
pdfs/t0.pdf: application/pdf; charset=us-ascii
$ vic pdfs/t0.pdf
utf-8



6> bx2..:

只需使用:

file -I 

而已.


`file -I`为我工作; `file -i`没有
我不能打扰投票,但那个答案是完全错误的.小-i表示如果内容是常规文件,则不对其进行分类.-I相当于--mime,它输出mime类型的字符串.osx工具的行为与标准的linux工具不同.

7> Adam..:

使用file带有--mime-encoding选项(例如file --mime-encoding some_file.txt)而不是-I选项的命令可以在OS X上运行,并且具有省略mime类型"text/plain"的额外好处,您可能不关心它.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有