【发布时间】:2014-08-05 03:52:10
【问题描述】:
行:
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
我很难弄清楚这一点。
【问题讨论】:
-
请提供显示问题的内联小示例文件(如十六进制中的 10-20 字节)。否则无法提出任何建议。
-
i.imgur.com/vWyXj2O.png你是这个意思吗?
-
有点像。 “内联”就像“编辑帖子并将数据作为文本”。您的示例文件没有具有 BOM(尽管您声称您已使用“带有签名的 Utf8”保存它),它可能使用其他编码(可能不是 Utf8)。在使用 BOM 读取文件或使用 Utf8 重新保存文件时显式修复指定编码。
-
我指定,我想明确使用 UTF8 编码,但它不会改变任何事情。虽然你是对的,但当我将文件保存为 UTF8 时它可以正常工作,但我不能这样做,因为我无法控制将提供给程序的内容。让我明白的是,当我将普通 File 与控制台应用程序一起使用时,它就像一个魅力,但与 FileIO 和存储应用程序一起使用它会失败
标签: c# unicode windows-store-apps