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

时间:2014-01-09 16:42:38

标签: unicode windows-8 winjs windows-8.1

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

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

任何想法如何在WinJs中读取这些字符?

2 个答案:

答案 0 :(得分:2)

我发现了问题。

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

答案 1 :(得分:0)

您可以通过将编码从默认值(Utf8)更改为Utf16来解决此问题。 readTextAsync method接受第二个参数,即UnicodeEncoding标志:

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

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