Can I read/write text as UTF-8?

Yes. You can append a little “as «class utf8»” to your read-write commands and you are done.

set f to (open for access file x)
set eof of f to 0 --> empty file contents if needed
write "foo" to f as «class utf8»
close access f

If you need this file into a text editor, we would recommend adding a little flag to the file, so the text editor recognizes this is a utf-8 encoded file:

set f to (open for access file x)
set eof of f to 0 --> empty file contents if needed
--> now write the flag
write ((ASCII character 239) & (ASCII character 187) & (ASCII character 191)) to f --> not as «class utf8»
--> now write the data
write "foo" to f as «class utf8»
close access f

Reading is very similar:

read file x as «class utf8»