Así que tengo este archivo que descargo a través de ftp. El archivo es solo un archivo de configuración para un sistema en mi empresa para la que trabajo. Una vez que se descarga el archivo, lo abro y lo proceso. Parte del procesamiento del archivo es verificar si una línea comienza con un carácter Unicode \u001a .
Aquí es donde estoy perplejo porque .StartsWith("\u001a") siempre es true , pero no puedo ver por qué. Si veo el archivo en Notepad ++ o en un editor hexadecimal, simplemente no veo eso.
Así que hay algo que me estoy perdiendo aquí.
Aquí hay un ejemplo mínimo ( fiddle ):
// prints True in .NET 5 Console.WriteLine("Hello".StartsWith("\u001a"));Se debe a un cambio radical en las API de globalizaciones en .NET 5 . Puede elegir uno de los siguientes enfoques
StringComparison.Ordinal u OrdinalIgnoreCase <ItemGroup> <RuntimeHostConfigurationOption Include="System.Globalization.UseNls" Value="true" /> </ItemGroup> { "runtimeOptions": { "configProperties": { "System.Globalization.UseNls": true } } }DOTNET_SYSTEM_GLOBALIZATION_USENLS en el valor true o 1 .