Περισσότερα
Πώς να μετατρέψετε Strings σε και από UTF8 byte arrays σε Java
Στη Java, έχω ένα String και θέλω να το κωδικοποιήσω ως πίνακα byte (σε UTF8 ή κάποια άλλη κωδικοποίηση). Εναλλακτικά, έχω έναν πίνακα byte (σε κάποια γνωστή κωδικοποίηση) και θέλω να τον μετατρέψω σε συμβολοσειρά Java. Πώς μπορώ να κάνω αυτές τις μετατροπές;
224
3
Μετατροπή από String σε byte[]:
Μετατροπή από byte[] σε String:
Θα πρέπει, φυσικά, να χρησιμοποιήσετε το σωστό όνομα κωδικοποίησης. Τα παραδείγματά μου χρησιμοποίησαν US-ASCII και UTF-8, τις δύο πιο κοινές κωδικοποιήσεις.
Μπορείτε να μετατρέψετε απευθείας μέσω του κατασκευαστή String(byte[], String) και της μεθόδου getBytes(String). Η Java εκθέτει τα διαθέσιμα σύνολα χαρακτήρων μέσω της κλάσης Charset. Η τεκμηρίωση του JDK παραθέτει τους υποστηριζόμενους κωδικοποιητές.
Στο 90% των περιπτώσεων, τέτοιες μετατροπές πραγματοποιούνται σε ροές, οπότε θα χρησιμοποιούσατε τις κλάσεις Reader/Writer. Δεν θα αποκωδικοποιούσατε σταδιακά χρησιμοποιώντας τις μεθόδους String σε αυθαίρετες ροές byte - θα αφήνατε τον εαυτό σας ανοιχτό σε σφάλματα που αφορούν χαρακτήρες πολλαπλών byte.