简体   繁体   中英

C# metro No mapping for the Unicode character exists in the target multi-byte code page

Line:

IList<string> text = await FileIO.ReadLinesAsync(file);

causes exception No mapping for the Unicode character exists in the target multi-byte code page

When I remove chars like ąśźćóż from my file it runs ok, but the problem is that I can't guarantee that those chars won't happen in future.

I tried changing the encoding in advanced save options but it is already

Unicode (UTF-8 with signature) - Codepage 65001

I have a hard time trying to figure this one out.

Make FileIO.ReadLinesAsync use a matching encoding. I don't know what you custom class does but according to the error message it does not use any Unicode encoding.

I think those characters ąśźćóż are UTF-16 encoded.So, it's better to use UTF-16. Use the overload ReadLinesAsync(IStorageFile, UnicodeEncoding) and set UnicodeEncdoing parameter to UnicodeEncoding.Utf16BE

From MSDN :

This method uses the character encoding of the specified file. If you want to specify different encoding, call ReadLinesAsync(IStorageFile, UnicodeEncoding) instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM