You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by mw...@apache.org on 2009/08/17 16:10:21 UTC
svn commit: r804989 -
/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
Author: mwiederkehr
Date: Mon Aug 17 14:10:21 2009
New Revision: 804989
URL: http://svn.apache.org/viewvc?rev=804989&view=rev
Log:
extracted method replaceUnderscores()
Modified:
james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java?rev=804989&r1=804988&r2=804989&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java Mon Aug 17 14:10:21 2009
@@ -102,8 +102,8 @@
*/
public static String decodeB(String encodedWord, String charset)
throws UnsupportedEncodingException {
-
- return new String(decodeBase64(encodedWord), charset);
+ byte[] decodedBytes = decodeBase64(encodedWord);
+ return new String(decodedBytes, charset);
}
/**
@@ -118,21 +118,10 @@
*/
public static String decodeQ(String encodedWord, String charset)
throws UnsupportedEncodingException {
-
- /*
- * Replace _ with =20
- */
- StringBuilder sb = new StringBuilder(128);
- for (int i = 0; i < encodedWord.length(); i++) {
- char c = encodedWord.charAt(i);
- if (c == '_') {
- sb.append("=20");
- } else {
- sb.append(c);
- }
- }
+ encodedWord = replaceUnderscores(encodedWord);
- return new String(decodeQuotedPrintable(sb.toString()), charset);
+ byte[] decodedBytes = decodeQuotedPrintable(encodedWord);
+ return new String(decodedBytes, charset);
}
/**
@@ -247,4 +236,22 @@
return null;
}
}
+
+ // Replace _ with =20
+ private static String replaceUnderscores(String str) {
+ // probably faster than String#replace(CharSequence, CharSequence)
+
+ StringBuilder sb = new StringBuilder(128);
+
+ for (int i = 0; i < str.length(); i++) {
+ char c = str.charAt(i);
+ if (c == '_') {
+ sb.append("=20");
+ } else {
+ sb.append(c);
+ }
+ }
+
+ return sb.toString();
+ }
}