Ciao Secks
non so se hai già risolto, ad ogni modo secondo me il problema sta nella conversione in short che potenzialmente può non tornare il codice ASCII, io utilizzerei :
byte[] CodiciASCII = Encoding.ASCII.GetBytes(s);
foreach(byte b in CodiciASCII) {
Console.WriteLine(b);
}
dovrebbe risolvere il problema per i caratteri speciali.