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 @@ -