As long as you’re running on system using a Roman language, MacRoman is the default. So a simple read or write without any as parameter will do the job.
The type of linefeed is irrelevant to the encoding — just use return if you want to add any.
You try UTF-8 first, and if that throws an error, try again with MacRoman.
If there are large files or slow disk access this is something more efficiently done using ASObjC, in that you can read a file as data, and then try the encodings without hitting the disk again.