Ho il seguente codice:Perché non string.Normalizza coerentemente in base al contesto?
string input = "ç";
string normalized = input.Normalize(NormalizationForm.FormD);
char[] chars = normalized.ToCharArray();
costruisco questo codice con Visual Studio 2010, .net4, su un 64 bit di Windows 7.
ho eseguito in un progetto di test di unità (piattaforma: Qualsiasi CPU) in due contesti e controllare il contenuto di chars
:
- di Visual Studio unit test: caratteri contiene
{ 231 }
. - ReSharper: caratteri contiene
{ 231 }
. - NCrunch: caratteri contiene
{ 99, 807 }
.
Nel msdn documentation, non sono riuscito a trovare alcuna informazione che presenti comportamenti diversi.
Quindi, perché ottengo comportamenti diversi? Per me il comportamento NCrunch è quello previsto, ma mi aspetterei lo stesso per gli altri.
Modifica: Sono tornato a .Net 3.5 e ho ancora lo stesso problema.
Hmm, ottengo {99, 807} con Visual Studio ... Ciò implicherebbe che c'è qualcosa nella configurazione del progetto ... Forse. – zmilojko
@zmilojko. Grazie per il tuo test. Ottengo gli stessi risultati dei tuoi in un nuovo progetto vuoto. Quindi sto verificando le differenze tra i due progetti (winmerge su csproj), ma non sono riuscito a trovare ancora rilevante, il motivo per cui ho pubblicato questa domanda: capire quale contesto potrebbe indurre un comportamento diverso. – remio
Che cosa è 'Thread.CurrentThread.CurrentCulture' in ogni caso? – AakashM