Ho uno scenario in cui alcuni caratteri speciali sono memorizzati in un database (sybase) nella codifica predefinita del sistema e devo recuperare questi dati e inviarli a una terza parte nella codifica UTF-8 usando un Programma JavaCodifica UTF8 Java
È necessario che i dati inviati a terze parti non superino una dimensione massima definita. Dal momento della conversione in UTF-8 un personaggio può essere sostituito da 2 o 3 caratteri, quindi la mia logica impone che dopo aver ottenuto i dati dal database devo codificarli nella stringa UTF-8 e quindi dividere la stringa. Le seguenti sono le mie osservazioni:
Quando si incontra un carattere speciale come caratteri cinesi o greci o qualsiasi carattere speciale> ASCII 256 e quando lo converto in UTF-8, un singolo carattere può essere rappresentato da più di 1 byte.
Quindi, come posso essere sicuro che la conversione sia corretta? Per la conversione Sto usando il seguente
// storing the data from database into string
string s = getdata from the database;
// converting all the data in byte array utf8 encoding
byte [] b = s.getBytes("UTF-8");
// creating a new string as my split logic is based on the string format
String newString = new String(b,"UTF-8");
Ma quando sono uscita questo newString alla console ricevo ?
per i caratteri speciali.
Così ho qualche dubbio:
- Se la mia logica di conversione è sbagliato, quindi come potrei correggerlo.
- Dopo aver fatto la mia conversione a UTF-8, posso ricontrollare se la mia conversione è OK o no? Voglio dire che è il messaggio corretto che deve essere inviato a terzi, presumo che se il messaggio non è leggibile dall'utente dopo la conversione, allora c'è qualche problema con la conversione.
Vorrei avere alcuni punti di vista da tutti gli esperti là fuori.
Per favore fatemi sapere se ogni ulteriore informazione è necessaria da parte mia.
che sembra essere un problema con la tua console, piuttosto che la conversione, che per quanto posso dire, va bene. Hai provato a scriverlo in un file di testo anziché nella console e aprirlo con un editor di testo? – biziclop
hai provato a trasmettere la stringa originale? Il carattere utilizzato dalla tua console potrebbe non contenere questi caratteri – josefx
L'attività di conversione da unicode a utf-8 e la visualizzazione corretta dei caratteri non è priva di problemi. Un contatto ha trovato una soluzione l'anno scorso. Gli chiederò come è riuscito a farlo funzionare. –