Index: src/main/java/org/mortbay/jetty/testing/HttpTester.java
===================================================================
--- src/main/java/org/mortbay/jetty/testing/HttpTester.java	(revision 4148)
+++ src/main/java/org/mortbay/jetty/testing/HttpTester.java	(working copy)
@@ -66,10 +66,17 @@
     protected ByteArrayOutputStream2 _parsedContent;
     protected byte[] _genContent;
     
+    private String _charset;
+    
     public HttpTester()
     {
     }
     
+    public HttpTester(String charset)
+    {
+        _charset = charset;
+    }
+    
     public void reset()
     {
         _fields.clear();
@@ -81,6 +88,39 @@
          _parsedContent=null;
          _genContent=null;
     }
+    
+    private String getString(Buffer buffer)
+    {
+        return getString(buffer.asArray());
+    }
+    
+    private String getString(byte[] b)
+    {
+        if(_charset==null)
+            return new String(b);
+        try
+        {
+            return new String(b, _charset);
+        }
+        catch(Exception e)
+        {
+            return new String(b);
+        }
+    }
+    
+    private byte[] getByteArray(String str)
+    {
+        if(_charset==null)
+            return str.getBytes();
+        try
+        {
+            return str.getBytes(_charset);
+        }
+        catch(Exception e)
+        {
+            return str.getBytes();
+        }
+    }
 
     /* ------------------------------------------------------------ */
     /**
@@ -91,11 +131,11 @@
      */
     public String parse(String rawHTTP) throws IOException
     {
-        ByteArrayBuffer buf = new ByteArrayBuffer(rawHTTP);
+        ByteArrayBuffer buf = new ByteArrayBuffer(getByteArray(rawHTTP));
         View view = new View(buf);
         HttpParser parser = new HttpParser(view,new PH());
         parser.parse();
-        return view.toString();
+        return getString(view.asArray());
     }
 
     /* ------------------------------------------------------------ */
@@ -361,9 +401,9 @@
     public String getContent()
     {
         if (_parsedContent!=null)
-            return _parsedContent.toString();
+            return getString(_parsedContent.toByteArray());
         if (_genContent!=null)
-            return new String(_genContent);
+            return getString(_genContent);
         return null;
     }
     
@@ -373,7 +413,7 @@
         _parsedContent=null;
         if (content!=null)
         {
-            _genContent=content.getBytes();
+            _genContent=getByteArray(content);
             setLongHeader(HttpHeaders.CONTENT_LENGTH,_genContent.length);
         }
         else
@@ -389,17 +429,17 @@
         public void startRequest(Buffer method, Buffer url, Buffer version) throws IOException
         {
             reset();
-            _method=method.toString();
-            _uri=url.toString();
-            _version=version.toString();
+            _method=getString(method);
+            _uri=getString(url);
+            _version=getString(version);
         }
 
         public void startResponse(Buffer version, int status, Buffer reason) throws IOException
         {
             reset();
-            _version=version.toString();
+            _version=getString(version);
             _status=status;
-            _reason=reason.toString();
+            _reason=getString(reason);
         }
         
         public void parsedHeader(Buffer name, Buffer value) throws IOException

