MimeUtility.decode() funktioniert nicht für jede codierte text
Arbeite ich o eine E-mail-Anwendung, und ich habe einige Probleme mit der Dekodierung von mime-kodierten text. Ich bin mit MimeUtility.decode() aber es muss nicht für jede codierte text. Einige Texte sind richtig dekodiert, aber die andere nicht.
Diese codierten text kann nicht dekodiert werden vor allem für utf-8 und iso-8859-9-Codierung geben.
Wie kann ich dieses Problem lösen??
Dies ist der code, den ich verwendet für die Decodierung
MimeUtility.decodeText(text);
Diese sind Beispiele von fehlerhaften text:
- Zeig uns deinen code ein den fehlerhaften text.
- Ich Hinzugefügt, um erste Nachricht
- Können wir vermuten, dass das das problem ist eigentlich die RFC2047 Codierung und die Streicher, denen es gelingt, nicht-codierte so?
- Warum Sie Bilder verwenden? Bitte copy/paste den text statt. Sind diese zwei verschiedenen Beispiele oder beide Teil der gleichen header?
- Eigentlich ist der string im zweiten Bild ist flippig.
ule=20
sollteule_
und das schließende Trennzeichen?=
sollte neben whitespace (also vielleichtule_Eser?=
stattule=20?=Eser
). - Ich habe es gelöst und Hinzugefügt, die Lösung unten
Du musst angemeldet sein, um einen Kommentar abzugeben.
****Lösung***** (Dank an @user_xtech007)
Ich lösen dieses problem mit der Dekodierung der kodierten Teile, die durch die Spaltung mehrere codierte Teile mit regex .
Hier ist die codes der Methode, die ich mit
konvertieren Sie die Zeichenfolge, die Sie erhalten, in eine byte-array und verwenden Sie diese zum Dekodieren von utf-8-text
zuerst konvertieren Sie die ISO-8859-1 text in bye-array konvertieren Sie Sie dann in string
Für immer die codierte Zeichenfolge, die aus der uri , die Sie verwenden können, Regex
Können Sie auch Dekodieren diese Zeichenfolge, indem Sie
Bevor Sie
MimeUtility.decodeText(text);
Dadurch wird sichergestellt, dass auch die "inneren Worte" get entschlüsselt:
https://docs.oracle.com/javaee/7/api/javax/mail/internet/MimeUtility.html