|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
[java/generale] pulire stringa esadecimale(sembra)
Ciao ragazzi, ho un problema. Mi invio da solo una mail tramite outlook e la ricevo programmaticamente da socket tramite java. Ora, vi faccio qualche esempio di quello che mando e quello che ricevo:
"prova" --> "prova" //BENE! "è é ì à ò ù" --> "6CDpIOwg4CDyIPkNCg==" "è é ì à ò ù èèè" --> "6CDpIOwg4CDyIPkg6OjoDQo=" ![]() ![]() Ho notato che outlook se metto solo caratteri a 128 bit usa il charset "us-ascii", altrimenti "iso-8859-1". Ma questo in ogni caso non cambia le cose. Ricevo sempre quella codifica esadecimale(sembra). Ho guardato non so quante tabelle dell'iso-8859 ma non mi ci ritrovo. Qualcuno riesce ad aiutarmi? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Più che esadecimale direi base64...
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Base64? Non mi pare di averlo mai visto nelle tabelle che ho trovato finora. Ne conosci qualcuna?
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Stai facendo confusione.
L'encoding base64 lavora su una sequenza di byte. Le meccaniche di outlook e del tuo programma che legge dal socket mi sono oscure, ma quello che avviene nei tuoi esempi sembra sia qualcosa di simile: - se la stringa contiene solo caratteri rappresentabili dal charset us-ascii -> nessuna conversione. - altrimenti converti in binario (secondo l'encoding di default del sistema mi vien da dire, ma chi lo sa...) e poi in base64. http://en.wikipedia.org/wiki/Base64
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Guarda quest'altra:
"Prova è solo per noi di lunedì" --> "Prova =E8 solo per noi di luned=EC" La cosa che mi perplime è che la e accentata qua sembra rappresentata diversamente che non negli esempi di prima ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Boh... a me sembra che tu ed outlook usiate due encoding diversi. Puoi postare un pò di codice?
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Penso non ce ne sia più bisogno. Non mi ero accorto che tra gli attributi,che mi sparava fuori della mail, c'è anche un content-transfer-encoding che ha come valore nei tre casi qualcosa del tipo:
- 7bit - Base64 - quoted-printable Quindi adesso posso distinguere i casi: nel primo non faccio nulla, nel secondo dovrò trovare un modo di passare da base64 a stringa normale e nel terzo(è l'ultimo esempio che ho postato), su cui mi sto concentrando ora, non faccio altro che cambiare gli esadecimali nei caratteri accentati corrispondenti. Ti ringrazio ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:30.