我知道如何使用sys.io.File.read读取一个带Haxe的文件(比较Reading lines from a file in Haxe,我也知道sys模块不适用于每个目标)。但是,如何告诉sys.io.File.read我的文本文件是通过某种编码进行编码的(例如UTF-16,UTF-8,ISO-8859-1,...)?
答案 0 :(得分:2)
无法在File
级别执行此操作,但您可以在读取文件后对String
进行编码/解码。例如,Utf8.encode()
会将ISO-8859-1字符串转换为UTF-8字符串:
var isoString = sys.io.File.getContent("iso_file.txt");
var utf8String = haxe.Utf8.encode(isoString);
sys.io.File.saveContent("utf8_file.txt", utf8String);
标准库目前不支持UTF-16,但it's coming in Haxe 4。与此同时,您可以使用unifill之类的库。
顺便说一句,如果您不需要逐行阅读文件,File.getContent()
比您链接的File.read()
方法更方便。