jojor Δημοσ. 17 Σεπτεμβρίου 2014 Δημοσ. 17 Σεπτεμβρίου 2014 (επεξεργασμένο) Θα ήθελα την βοήθεια όσων γνωρίζουν στην μετατροπή byte[] array σε ελληνική λέξη. Μέχρι τώρα δεν είχα πρόβλημα με τους αγγλικούς χαρακτήρες με την παρακάτω μέθοδο byte[] barray =new byte[] { 0xEC, 0xE5, 0xF4, 0xDC, 0xE4, 0xEF, 0xF3, 0xE7 }; for (int i = 0; i < barray.Length; i++) { textBox38.Text += (char)barray[i]; } Το ζητούμενο είναι να εμφανιστεί στο textbox38 Η λέξη "μετάδοση". Επεξ/σία 17 Σεπτεμβρίου 2014 από jojor
jojor Δημοσ. 17 Σεπτεμβρίου 2014 Μέλος Δημοσ. 17 Σεπτεμβρίου 2014 Μήπως μπορείς να γίνεις πιο συγκεκριμένος ?? Κάτι τέτοιο ?? Encoding enc=Encoding.GetEncoding(1253); string str = encoding.GetString(barray);
jojor Δημοσ. 17 Σεπτεμβρίου 2014 Μέλος Δημοσ. 17 Σεπτεμβρίου 2014 Δεν γνωρίζω σε τι encoding έρχεται η πληροφορία. Έρχεται μέσα από stream δορυφορικού δέκτη. Πως μπορώ να το ελέγξω αυτό ??
jojor Δημοσ. 17 Σεπτεμβρίου 2014 Μέλος Δημοσ. 17 Σεπτεμβρίου 2014 Σίγουρα δεν υπάρχει δορυφορικό encoding ... Απλά ανέφερα την πηγή. Από το παράδειγμα όμως που δίνω που το EC αντιστοιχεί στο "μ" δεν μπορεί να εξαχθεί κανένα συμπέρασμα περί του χρησιμοποιούμενου encoding ??
παπι Δημοσ. 17 Σεπτεμβρίου 2014 Δημοσ. 17 Σεπτεμβρίου 2014 Ναι.. Ολά έχουν το πρωτο bit true. Αρα μιλάμε για exdend. Δες τα δ ο ελληνικά encode. 12κατι 7κατι
jojor Δημοσ. 17 Σεπτεμβρίου 2014 Μέλος Δημοσ. 17 Σεπτεμβρίου 2014 http://www.ascii.ca/cp1253.htm Από εδώ φαίνεται ότι μάλλον έχουμε encoding windows 1253. Στο 737 δεν υπάρχει η αντιστοιχία που ανέφερα. Συνεπώς πρέπει αν γίνει έτσι ?? byte[] barray =new byte[] { 0xEC, 0xE5, 0xF4, 0xDC, 0xE4, 0xEF, 0xF3, 0xE7 }; Encoding enc=Encoding.GetEncoding("windows-1253"); string str = encoding.GetString(barray);
albNik Δημοσ. 17 Σεπτεμβρίου 2014 Δημοσ. 17 Σεπτεμβρίου 2014 Αν προσθεσεις 48 σε καθε byte byte[] barray = new byte[] { 0xBC+48, 0xB5+48, 0xC4+48, 0xAC+48, 0xB4+48, 0xBF+48, 0xC3+48, 0xB7+48 }; string str= Encoding.GetEncoding(1253).GetString(barray); Console.WriteLine(str); //μετάδοση 1
jojor Δημοσ. 17 Σεπτεμβρίου 2014 Μέλος Δημοσ. 17 Σεπτεμβρίου 2014 @albNik Τελικά αυτό ήταν !!!!!!!!! Μπορώ να ρωτήσω γιατί πρέπει να προσθέτουμε το 48 ???
albNik Δημοσ. 17 Σεπτεμβρίου 2014 Δημοσ. 17 Σεπτεμβρίου 2014 @albNik Τελικά αυτό ήταν !!!!!!!!! Μπορώ να ρωτήσω γιατί πρέπει να προσθέτουμε το 48 ??? No idea. Ισως να εγινε λαθος κατα το encoding. O χαρακτήρας '0' εχει τιμή 48. Θυμιζει μετατροπη digit ce char int d = c-'0';
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα