Encoding 437 data could not be found while unzipping in Android 10

While trying to unzip an archive with ICSharpCode.SharpZipLib.Zip.ZipFile in Android 10.
This code:

using (zf = new ZipFile(fsInput)){


give me the error:

Encoding 437 data could not be found. Make sure you have correct international codeset assembly installed and enabled.

at System.Text.Encoding.GetEncoding (System.Int32 codepage) [0x0023f] in <599589bf4ce248909b8a14cbe4a2034e>:0
at ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToString (System.Byte data, System.Int32 count) [0x0000e] in <8e8fa28d216a43ec8dcb2258d1f7bf00>:0
at ICSharpCode.SharpZipLib.Zip.ZipConstants.ConvertToStringExt (System.Int32 flags, System.Byte data, System.Int32 count) [0x00020] in <8e8fa28d216a43ec8dcb2258d1f7bf00>:0
at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries () [0x002b2] in <8e8fa28d216a43ec8dcb2258d1f7bf00>:0
at ICSharpCode.SharpZipLib.Zip.ZipFile…ctor (System.IO.Stream stream) [0x00076] in <8e8fa28d216a43ec8dcb2258d1f7bf00>:0
at FileHelper.ExtractZipFile (System.String archiveFilenameIn, System.String password, System.String outFolder) [0x0000b] in …

I tried to copy all I18N.*.dll from Editor’s dll folder to plugins folder. But the error is still there.
Any help is welcome.

Were you able to sort it , i’m having the same issue and if you did please update

I’m having the same issue

Hello from months later,

I had same issue while using NPOI. Just managed to overcome this problem.

TLDR: Modify “ZipConstants.DefaultCodePage” value in SharpZipLib to UTF8 or encoding related to your setup. (Before using NPOI/SharpZipLib)

ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = System.Text.Encoding.UTF8.CodePage;

I had no problem when i use .xlsx write operations on Unity Editor. However, testing project on build was giving same error with 857 encoding code (turkish-utf8 iso format).
I looked up source code of sharpziplib and github issues of sharpziplib, i found this issue and problem was related to ZipConstants takes ZipConstants:15 -> private static int defaultCodePage = Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage; (OEMPage info) which gives unexpected errors on default usage. In Xamarin forum, many people pointed this problem as non-sharplibzip problems but encoding errors and their solution was setting project encoding to utf-8. In Unity, we cannot do that.
So, forcing ZipConstants.defaultCodePage or using custom code page for write-read operations solves the problem.