Una conversione diretta da ANSI a ASCII potrebbe non essere sempre possibile, poiché ANSI è un superset di ASCII.
si può provare la conversione in UTF8 utilizzando Encoding
, però:
Encoding ANSI = Encoding.GetEncoding(1252);
byte[] ansiBytes = ANSI.GetBytes(str);
byte[] utf8Bytes = Encoding.Convert(ANSI, Encoding.UTF8, ansiBytes);
String utf8String = Encoding.UTF8.GetString(utf8Bytes);
Naturalmente è possibile sostituire UTF8 con ASCII, ma che in realtà non ha senso dal momento che:
- se la stringa originale non contiene alcun byte> 126, quindi è già ASCII
- se la stringa originale contiene uno o più byte> 126, quindi quei byte saranno persi
UPDATE:
In risposta alla domanda aggiornato, è possibile utilizzare BinaryReader
come questo:
BinaryReader reader = new BinaryReader(File.Open("foo.txt", FileMode.Open),
Encoding.GetEncoding(1252));
fonte
2009-04-09 11:55:53
Perché pensi di voler convertirlo in ASCII? La risposta potrebbe rivelare ciò che effettivamente dovresti convertire in ... – Guffa