行:
IList<string> text = await FileIO.ReadLinesAsync(file);
导致异常No mapping for the Unicode character exists in the target multi-byte code page
当我从我的文件中删除ąśźćóż
之类的字符时,它运行正常,但问题是我不能保证这些字符将来不会发生。
我尝试更改高级保存选项中的编码,但它已经是
Unicode (UTF-8 with signature) - Codepage 65001
我很难想出这个。
答案 0 :(得分:0)
让FileIO.ReadLinesAsync
使用匹配的编码。我不知道你的自定义类会做什么,但根据错误消息它不使用任何Unicode编码。
答案 1 :(得分:0)
我认为那些字符ąśźćóż
是UTF-16编码的。所以,最好使用UTF-16。使用重载ReadLinesAsync(IStorageFile, UnicodeEncoding)
并将UnicodeEncdoing参数设置为UnicodeEncoding.Utf16BE
来自MSDN:
此方法使用指定文件的字符编码。如果你 想要指定不同的编码,调用ReadLinesAsync(IStorageFile, 相反,UnicodeEncoding)。