在Haxe中使用sys.io.File.read读取文件时指定文件编码

时间:2018-02-08 07:33:08

标签: encoding haxe

我知道如何使用sys.io.File.read读取一个带Haxe的文件(比较Reading lines from a file in Haxe,我也知道sys模块不适用于每个目标)。但是,如何告诉sys.io.File.read我的文本文件是通过某种编码进行编码的(例如UTF-16,UTF-8,ISO-8859-1,...)?

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()方法更方便。