From 5c35c140b3360beca518bad15df2ec162f0100ce Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 6 Aug 2021 13:44:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8D=87=E7=BA=A7=E3=80=91=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20NeoLua=20=E7=89=88=E6=9C=AC=20=E3=80=90=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E4=BF=AE=E5=A4=8D=20table=20input=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=8C=85=E5=90=AB=E5=A4=9A=E4=BD=99=E9=80=97=E5=8F=B7?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4empty=E5=AD=97=E7=AC=A6=E4=B8=B2''?= =?UTF-8?q?=E4=B9=9F=E8=A2=AB=E8=AF=86=E5=88=AB=E4=B8=BA=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=EF=BC=8C=E9=94=99=E8=AF=AF=E5=B0=86=E6=95=B4=E4=B8=AAinput=5Fd?= =?UTF-8?q?ata=5Fdir=E7=9B=AE=E5=BD=95=E5=BD=93=E4=BD=9C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E7=9A=84bug=20=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91?= =?UTF-8?q?=E5=BC=95=E7=94=A8UDE=E5=BA=93=EF=BC=8C=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=AF=86=E5=88=ABcsv=E6=96=87=E4=BB=B6=E7=BC=96=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E9=9D=9Eutf8=E6=A0=BC=E5=BC=8Fcsv=E4=B9=9F=E8=83=BD?= =?UTF-8?q?=E8=A2=AB=E6=AD=A3=E5=B8=B8=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Job.Cfg/Luban.Job.Cfg.csproj | 3 ++- .../DataSources/Excel/ExcelDataSource.cs | 18 +++++++++++++++++- src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs | 2 +- src/Luban.Server/Luban.Server.csproj | 1 - 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/Luban.Job.Cfg/Luban.Job.Cfg.csproj b/src/Luban.Job.Cfg/Luban.Job.Cfg.csproj index b269046..7962eed 100644 --- a/src/Luban.Job.Cfg/Luban.Job.Cfg.csproj +++ b/src/Luban.Job.Cfg/Luban.Job.Cfg.csproj @@ -13,7 +13,8 @@ - + + diff --git a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs index 8d74065..1e1254a 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/Excel/ExcelDataSource.cs @@ -18,13 +18,29 @@ namespace Luban.Job.Cfg.DataSources.Excel private readonly List _sheets = new List(); + private System.Text.Encoding DetectCsvEncoding(Stream fs) + { + Ude.CharsetDetector cdet = new Ude.CharsetDetector(); + cdet.Feed(fs); + cdet.DataEnd(); + fs.Seek(0, SeekOrigin.Begin); + if (cdet.Charset != null) + { + Console.WriteLine("Charset: {0}, confidence: {1}", cdet.Charset, cdet.Confidence); + return System.Text.Encoding.GetEncoding(cdet.Charset) ?? System.Text.Encoding.Default; + } + else + { + return System.Text.Encoding.Default; + } + } public override void Load(string rawUrl, string sheetName, Stream stream, bool exportTestData) { s_logger.Trace("{filename} {sheet}", rawUrl, sheetName); RawUrl = rawUrl; string ext = Path.GetExtension(rawUrl); - using (var reader = ext != ".csv" ? ExcelReaderFactory.CreateReader(stream) : ExcelReaderFactory.CreateCsvReader(stream)) + using (var reader = ext != ".csv" ? ExcelReaderFactory.CreateReader(stream) : ExcelReaderFactory.CreateCsvReader(stream, new ExcelReaderConfiguration() { FallbackEncoding = DetectCsvEncoding(stream) })) { do { diff --git a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs index 712a230..ace3fc7 100644 --- a/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs +++ b/src/Luban.Job.Cfg/Source/Defs/CfgDefLoader.cs @@ -286,7 +286,7 @@ namespace Luban.Job.Cfg.Defs { throw new Exception($"定义文件:{CurImportFile} table:'{p.Name}' group:'{invalidGroup}' 不存在"); } - p.InputFiles.AddRange(input.Split(',')); + p.InputFiles.AddRange(input.Split(',').Select(s => s.Trim()).Where(s => !string.IsNullOrWhiteSpace(s))); if (!string.IsNullOrWhiteSpace(branchInput)) { diff --git a/src/Luban.Server/Luban.Server.csproj b/src/Luban.Server/Luban.Server.csproj index 84d2713..9f0aeb9 100644 --- a/src/Luban.Server/Luban.Server.csproj +++ b/src/Luban.Server/Luban.Server.csproj @@ -24,7 +24,6 @@ -