You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ni...@apache.org on 2008/07/21 12:36:58 UTC
svn commit: r678387 - in /james/mime4j/trunk/src:
main/java/org/apache/james/mime4j/util/CodecUtil.java
test/java/org/apache/james/mime4j/util/CodecUtilTest.java
Author: niklas
Date: Mon Jul 21 03:36:57 2008
New Revision: 678387
URL: http://svn.apache.org/viewvc?rev=678387&view=rev
Log:
Resolved MIME4J-63: CodecUtil.encodeQuotedPrintableBinary() now handles 8bit bytes as expected.
Modified:
james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/CodecUtil.java
james/mime4j/trunk/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java
Modified: james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/CodecUtil.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/CodecUtil.java?rev=678387&r1=678386&r2=678387&view=diff
==============================================================================
--- james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/CodecUtil.java (original)
+++ james/mime4j/trunk/src/main/java/org/apache/james/mime4j/util/CodecUtil.java Mon Jul 21 03:36:57 2008
@@ -138,11 +138,14 @@
if (--nextSoftBreak <= QUOTED_PRINTABLE_OCTETS_PER_ESCAPE) {
softBreak();
}
+
+ int nextUnsigned = (int) next & 0xff;
+
write(EQUALS);
--nextSoftBreak;
- write(HEX_DIGITS[next >> 4]);
+ write(HEX_DIGITS[nextUnsigned >> 4]);
--nextSoftBreak;
- write(HEX_DIGITS[next % 0x10]);
+ write(HEX_DIGITS[nextUnsigned % 0x10]);
}
private void write(byte next) throws IOException {
Modified: james/mime4j/trunk/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java?rev=678387&r1=678386&r2=678387&view=diff
==============================================================================
--- james/mime4j/trunk/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java (original)
+++ james/mime4j/trunk/src/test/java/org/apache/james/mime4j/util/CodecUtilTest.java Mon Jul 21 03:36:57 2008
@@ -58,6 +58,15 @@
String actual = new String(out.toByteArray(), "US-ASCII");
assertEquals(expected, actual);
}
+
+ public void testEncodeQuotedPrintableNonAsciiChars() throws Exception {
+ String s = "7bit content with euro \u20AC symbol";
+ InputStream in = new ByteArrayInputStream(s.getBytes("iso-8859-15"));
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ CodecUtil.encodeQuotedPrintableBinary(in, out);
+ String actual = new String(out.toByteArray(), "US-ASCII");
+ assertEquals("7bit=20content=20with=20euro=20=A4=20symbol", actual);
+ }
private void assertEquals(byte[] expected, byte[] actual) {
StringBuffer buffer = new StringBuffer(expected.length);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org