我试图在TextMate中输入一些UTF-8字符到LaTeX文件(它说它的默认编码是UTF-8),但LaTeX似乎不理解它们。

运行cat my_file.tex可以在Terminal中正确显示字符。运行ls -al会显示一些我以前从未见过的东西:文件列表旁边的“@”:

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

(并且,是的,我在LaTeX中使用\usepackage[utf8]{inputenc}。)

我找到了iconv,但这似乎不能告诉我编码是什么-它只会转换一旦我弄清楚。


当前回答

@符号表示文件具有扩展属性。xattr文件显示了它拥有的属性,xattr -l文件也显示了属性值(有时可能很大-尝试例如xattr /System/Library/Fonts/HelveLTMM来查看存在于资源分叉中的旧式字体)。

其他回答

在file命令上使用-I(大写i)选项似乎可以显示文件编码。

file -I {filename}

只使用:

file -I <filename>

就是这样。

你也可以使用下面的命令从一个文件类型转换到另一个文件类型:

iconv -f original_charset -t new_charset originalfile > newfile

如。

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

在Mac OS X中,命令文件-I(大写i)将为您提供适当的字符集,只要您正在测试的文件包含基本ASCII范围之外的字符。

例如,如果你进入终端,使用vi来创建一个文件。vi用法 然后插入一些字符,包括一个重音字符(尝试ALT-e后面跟着e) 然后保存文件。

他们输入file -I text.txt,你应该得到这样的结果:

用法:文本/平原;utf - 8字符集=

Synalyze它!允许比较ICU库提供的所有编码中的文本或字节。使用该功能,您通常会立即看到哪个代码页对您的数据有意义。