Sto cercando di fare qualcosa che penso debba essere abbastanza semplice, ma ho già passato troppo tempo e ho provato diversi approcci diversi che ho cercato ma senza risultati.C# UTF8 Lettura/emissione
Fondamentalmente, ho una lunga lista di nomi con caratteri "speciali" dal set di caratteri UTF8.
Il mio obiettivo finale è quello di leggere ciascun nome e quindi effettuare una richiesta HTTP utilizzando tale nome nell'URL come variabile GET.
Il mio primo obiettivo era quello di leggere un nome da un file e metterlo sullo standard per confermare che potevo leggere e scrivere correttamente in UTF8, prima di creare le stringhe e fare tutte le richieste HTTP.
Il file test1.txt
ho fatto contenevano proprio questo contenuto:
ownage
Ho quindi utilizzato il codice C# per leggere nel file. Ho impostato la codifica StreamReader
e Console.OutputEncoding
in UTF8
.
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
using (StreamReader reader = new StreamReader("test1.txt",System.Text.Encoding.UTF8))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
Con mia grande sorpresa ho questo tipo di uscita:
risultato atteso è la stessa esatta come il contenuto del file originale.
Come posso essere certo che le stringhe che sto per compilare per rendere le richieste HTTP saranno corrette se non riesco a fare un semplice compito come leggere/scrivere stringhe UTF8?
+1 Questo è corretto. Assicurati inoltre di salvare il file di esempio utilizzando UTF-8 e non ANSI, che è l'impostazione predefinita nel Blocco note. – Yuck
Questo, unitamente al suggerimento di Yuck, per assicurarsi di aver selezionato UTF-8 invece di ANSI quando ho salvato il file. Grazie ragazzi mi hai risparmiato un sacco di mal di testa, ne sono sicuro! – user17753