diff --git a/Penumbra/Importer/TexToolsImport.cs b/Penumbra/Importer/TexToolsImport.cs index 26f071dd..9a00c578 100644 --- a/Penumbra/Importer/TexToolsImport.cs +++ b/Penumbra/Importer/TexToolsImport.cs @@ -190,7 +190,7 @@ namespace Penumbra.Importer private DirectoryInfo CreateModFolder( string modListName ) { var correctedPath = Path.Combine( _outDirectory.FullName, - Path.GetFileName( modListName ).RemoveInvalidPathSymbols() ); + Path.GetFileName( modListName ).RemoveInvalidPathSymbols().RemoveNonAsciiSymbols() ); var newModFolder = new DirectoryInfo( correctedPath ); var i = 2; while( newModFolder.Exists && i < 12 ) diff --git a/Penumbra/Util/StringPathExtensions.cs b/Penumbra/Util/StringPathExtensions.cs index 2c4f75b0..b97e9061 100644 --- a/Penumbra/Util/StringPathExtensions.cs +++ b/Penumbra/Util/StringPathExtensions.cs @@ -1,4 +1,6 @@ using System.IO; +using System.Linq; +using System.Text; namespace Penumbra { @@ -11,5 +13,23 @@ namespace Penumbra public static string RemoveInvalidPathSymbols( this string s ) => string.Concat( s.Split( _invalid ) ); + + public static string RemoveNonAsciiSymbols( this string s, string replacement = "_" ) + { + StringBuilder sb = new( s.Length ); + foreach( var c in s ) + { + if( c < 128 ) + { + sb.Append( c ); + } + else + { + sb.Append( replacement ); + } + } + + return sb.ToString(); + } } } \ No newline at end of file