我正在使用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
标志(请参阅上面的链接)。