When I use Quick Look in the Finder on a text file, it'll inevitably render garbled because it treats it as MacRoman.

Can I do something to make it always use UTF-8, or, even better, be ever so slightly smart about encoding detection?


<rant>
Maybe not all my text files are UTF-8. But I'm damn sure not a single one is MacRoman. Some people at Apple are still using OS 9 I guess.
</rant>

link|improve this question

65% accept rate
feedback

2 Answers

up vote 5 down vote accepted

It's a file attribute problem. See here, at the end, two links explaining it: http://discussions.apple.com/thread.jspa?threadID=1479441&tstart=120

Basically, if you execute this: xattr -w com.apple.TextEncoding 'UTF-8;134217984' yourfile.txt your file will appear correctly in QuickLook.

In my opinion it has to do more with the editor and the way it saves the file than with QuickLook.

link|improve this answer
In my opinion, the OS defaulting to MacRoman while the world has moved on is asinine. – kch Aug 3 '10 at 11:49
I guess now I need a way to run that for every text file I create. fsevents and Folder Actions come to mind. Would be nice if TextMate had post-save hooks too. – kch Aug 3 '10 at 11:52
Why don't you just save it as UTF-8 in TextMate? – mipadi Aug 3 '10 at 14:20
I do, that's indeed the problem. QuickLook thinks it's MacRoman anyway. Hence the garbling. – kch Aug 3 '10 at 15:01
feedback

I wrote a little script that taps fsevents and sets the xattr when a file is saved within my home.

I also reveal the file's extension, which is unrelated to this question.

Check out the script here: http://gist.github.com/506382

The script must be constantly running, so a launchd job file would be most welcome.


Also, see my comment about using ~/.CFUserTextEncoding here.

link|improve this answer
Speaking of launchd, WatchPaths and QueueDirectories may do the job without my needing to tap fsevents myself. – kch Aug 3 '10 at 14:37
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.