Winjs,使用 FileIO.readTextAsync 读取文件时出错



我正在使用Windows.Storage.FileIO.readTextAsync从磁盘读取.json文件。一切都很好,直到我在文件中放入一些非英文字母,例如 Æ Å Ø

我得到的错误是(从丹麦语粗略翻译):WinRT:目标多字节代码页中不存在 Unicode 字符的映射。

知道如何在 WinJs 中阅读这些字符吗?

我发现了问题。

当我使用记事本手动创建文件时,我将其设置为键入 ANSII 而不是 utf8。我重新打开了文件 ->另存为并更改了类型并覆盖了它。

您可以通过将

编码从默认值 ( Utf8 ) 更改为 Utf16 来解决此问题。readTextAsync 方法接受第二个参数,即 UnicodeEncoding 标志:

Windows.Storage.FileIO.readTextAsync(
    file,
    Windows.Storage.Streams.UnicodeEncoding.utf16LE
).done( ... );

或者,如果需要,您可以使用utf16BE标志(请参阅上面的链接)。

最新更新