[C#] Da string a bytes[]

sabato 18 luglio 2009 - 20.35

rikicecchi Profilo | Newbie

Salve!
Sto creando un server web. Ho creato una connessione TCP (http://www.dotnethell.it/Forum/messages.aspx?ThreadID=26139) che quando un browser lo contatta risponde inviandogli il file richiesti. Va molto bene per testi normali in formato ASCII, ma l'esecuzione , convertendo la stringa completamente in ASCII inserendo una string in un'array di byte con la funzione <b>data = Encoding.ASCII.GetBytes(startdata);</b> gli accenti e caratteri speciali vengono sostituiti cono un punto interrogativo. Così rende impossibile lo scambio di foto ricca di caratteri "speciali". E' possibile trasmettere una stringa ad un'array di bytes mantenendo i caratteri normali?
Grazie mille !

aiedail92 Profilo | Expert

Ciao

Al posto della codifica ASCII, puoi usare UTF8, basta sostituire Encoding.ASCII.GetBytes con Encoding.UTF8.GetBytes

Luca

rikicecchi Profilo | Newbie

Ciao Luca,
purtroppo ho già provato e il risultato che in un testo al posto di "Attività" rimane "Attivit�"
Anche se inutile vi riporto il codice del server:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

aiedail92 Profilo | Expert

Quello dovrebbe essere solo un problema del browser... Prova a mandare un header che specifichi come charset l'utf-8 ("Content-Type: text/html; charset=utf-8")

In alternativa, al posto di leggere il file come stringa:

FileStream stream = File.Open(dires, FileMode.Open); StreamReader reader = new StreamReader(stream); readfile = reader.ReadToEnd(); reader.Close();

Leggi direttamente i byte del file e mandalo così com'è senza codifiche e decodifiche varie:

byte [] data = File.ReadAllByte("/path/to/file");

Luca

rikicecchi Profilo | Newbie

Tre parole: S-E-I U-N G-R-A-N-D-E!!!
Grazie mille!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5