UweKeim / ZetaResourceEditor

Free multilingual, parallel .NET resource file editing
https://www.zeta-resource-editor.com
MIT License
268 stars 77 forks source link

Error when importing from Excel: "No data is available for encoding 1252" #55

Closed luissagasta closed 1 year ago

luissagasta commented 1 year ago

I am using Zeta Resource Editor (version 2.3.42.0) and when I try to import from Excel the following exception is raised:

System.NotSupportedException

-----------------

No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.

-----------------

at System.Text.Encoding.GetEncoding(Int32 codepage)
   at ExcelDataReader.ExcelReaderConfiguration..ctor()
   at ExcelDataReader.ExcelReaderFactory.CreateReader(Stream fileStream, ExcelReaderConfiguration configuration)
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\P\zeta-resource-editor\Source\RuntimeBusinessLogic\ExportImportExcel\CoreExcel2\CoreExcelImporter.cs:line 12
   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\P\zeta-resource-editor\Source\RuntimeBusinessLogic\ExportImportExcel\Import\ExcelImportController.cs:line 43
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 344
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 437
   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)
   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)
   at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()
   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()
   at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()
   at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()
   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 69
   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)
   at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)
   at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)
   at DevExpress.XtraEditors.BaseEdit.set_Text(String value)
   at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)
   at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)
   at DevExpress.XtraEditors.TextEdit.set_Text(String value)
   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\P\zeta-resource-editor\Source\ExtendedControlsLibrary\General\ExtendedManagedCueMemoEdit.cs:line 40
   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\P\zeta-resource-editor\Source\Main\UI\ExportImportExcel\ExcelImportWizardForm.cs:line 334
   at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)
   at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.XtraEditors.XtraControl.WndProc(Message& m)
   at DevExpress.Utils.Controls.ControlBase.BaseWndProc(Message& m)
   at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)

NotSupportedException
{
    TargetSite=RuntimeMethodInfo: GetEncoding,
    Message="No data is available for encoding 1252. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.",
    Data=
    [
    ]
,
    InnerException=null,
    HelpLink=null,
    Source="System.Private.CoreLib",
    HResult=-2146233067,
    StackTrace="   at System.Text.Encoding.GetEncoding(Int32 codepage)\\r\\n   at ExcelDataReader.ExcelReaderConfiguration..ctor()\\r\\n   at ExcelDataReader.ExcelReaderFactory.CreateReader(Stream fileStream, ExcelReaderConfiguration configuration)\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.CoreExcel2.CoreExcelImporter.ImportExcelFromFile(String filePath) in c:\\P\\zeta-resource-editor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\CoreExcel2\\CoreExcelImporter.cs:line 12\\r\\n   at ZetaResourceEditor.RuntimeBusinessLogic.ExportImportExcel.Import.ExcelImportController.DetectFileGroupsFromExcelFile(Project project, String filePath) in c:\\P\\zeta-resource-editor\\Source\\RuntimeBusinessLogic\\ExportImportExcel\\Import\\ExcelImportController.cs:line 43\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.parseFileGroups() in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 344\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.sourceFileTextEdit_EditValueChanged(Object sender, EventArgs e) in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 437\\r\\n   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChangedCore(EventArgs e)\\r\\n   at DevExpress.XtraEditors.Repository.RepositoryItem.RaiseEditValueChanged(EventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseEdit.RaiseEditValueChanged()\\r\\n   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanged()\\r\\n   at DevExpress.XtraEditors.TextEdit.OnEditValueChanged()\\r\\n   at DevExpress.XtraEditors.MemoEdit.OnEditValueChanged()\\r\\n   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.OnEditValueChanged() in c:\\P\\zeta-resource-editor\\Source\\ExtendedControlsLibrary\\General\\ExtendedManagedCueMemoEdit.cs:line 69\\r\\n   at DevExpress.XtraEditors.BaseEdit.OnEditValueChanging(ChangingEventArgs e)\\r\\n   at DevExpress.XtraEditors.TextEdit.OnEditValueChanging(ChangingEventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseEdit.set_EditValue(Object value)\\r\\n   at DevExpress.XtraEditors.BaseEdit.set_Text(String value)\\r\\n   at DevExpress.XtraEditors.TextEdit.SetBaseText(String text)\\r\\n   at DevExpress.XtraEditors.TextEdit.TextEditWorkingStrategy.set_Text(String value)\\r\\n   at DevExpress.XtraEditors.TextEdit.set_Text(String value)\\r\\n   at ZetaResourceEditor.ExtendedControlsLibrary.General.ExtendedManagedCueMemoEdit.set_Text(String value) in c:\\P\\zeta-resource-editor\\Source\\ExtendedControlsLibrary\\General\\ExtendedManagedCueMemoEdit.cs:line 40\\r\\n   at ZetaResourceEditor.UI.ExportImportExcel.ExcelImportWizardForm.buttonBrowse_Click(Object sender, EventArgs e) in c:\\P\\zeta-resource-editor\\Source\\Main\\UI\\ExportImportExcel\\ExcelImportWizardForm.cs:line 334\\r\\n   at DevExpress.XtraEditors.BaseButton.OnClick(EventArgs e)\\r\\n   at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)\\r\\n   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\\r\\n   at System.Windows.Forms.Control.WndProc(Message& m)\\r\\n   at DevExpress.XtraEditors.XtraControl.WndProc(Message& m)\\r\\n   at DevExpress.Utils.Controls.ControlBase.BaseWndProc(Message& m)\\r\\n   at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)\\r\\n   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\\r\\n   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)"
}

In previous versions (I don't remember the exact version but not very old) of Zeta Resource Editor it didn't happen. I think it can be related with .Net Core and ExcelDataReader: https://github.com/ExcelDataReader/ExcelDataReader#important-note-on-net-core

The fix can be this: https://stackoverflow.com/a/73543901/18242412 https://stackoverflow.com/a/37870346/18242412

I have tried to fix it by myself and make a pull request but the Zeta resource Editor project cannot be compiled because some libraries cannot be found (Zeta.VoyagerLibrary.Core.Common, Zeta.VoyagerLibrary.Core.Logging, Zeta.VoyagerLibrary.Core.Tools, , Zeta.VoyagerLibrary.Core.WinForms).

Thank you.

UweKeim commented 1 year ago

Thank you, I've just released an update.

Could you please give it a try, whether this fixes the issue?

luissagasta commented 1 year ago

It works like a charm. Thank you very much for your quick fix!