I’m trying to enter some UTF-8 characters into a LaTeX file in TextMate (which says its default encoding is UTF-8), but LaTeX doesn’t seem to understand them. Running cat my_file.tex shows the characters properly in Terminal. Running ls -al shows something I’ve never seen before: an “@” by the file listing:
-rw-r--r--@ 1 me users 2021 Feb 11 18:05 my_file.tex
(And, yes, I’m using \usepackage[utf8]{inputenc} in the LaTeX.)
I’ve found iconv, but that doesn’t seem to be able to tell me what the encoding is — it’ll only convert once I figure it out.
Solution:
The @ means that the file has extended file attributes associated with it. You can query them using the getxattr() function.
There’s no definite way to detect the encoding of a file. Read this answer, it explains why.
There’s a command line tool, enca, that attempts to guess the encoding. You might want to check it out.