I am trying to get the source of a webpage using the following code:

```
public static String getFile(String sUrl) throws ClientProtocolException, IOException {
    DefaultHttpClient httpclient = new DefaultHttpClient();
    StringBuilder b = new StringBuilder();

    // Prepare a request object
    HttpGet httpget = new HttpGet(sUrl);

    // Execute the request
    HttpResponse response = httpclient.execute(httpget);

    // Examine the response status
    System.out.println(response.getStatusLine());

    //status code should be 200
    if (response.getStatusLine().getStatusCode() != 200) {
        return null; 
    }

    // Get hold of the response entity
    HttpEntity entity = response.getEntity();

    // If the response does not enclose an entity, there is no need
    // to worry about connection release
    if (entity != null) {
        InputStream instream = entity.getContent();

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(instream));
            // do something useful with the response
            String s = reader.readLine();

            while (s != null) {
                b.append(s);
                b.append("\n");
                s = reader.readLine();
            }

        } catch (IOException ex) {
            // In case of an IOException the connection will be released
            // back to the connection manager automatically
            throw ex;

        } catch (RuntimeException ex) {
            // In case of an unexpected exception you may want to abort
            // the HTTP request in order to shut down the underlying
            // connection and release it back to the connection manager.
            httpget.abort();
            throw ex;

        } finally {
            // Closing the input stream will trigger connection release
            instream.close();
        }

        // When HttpClient instance is no longer needed,
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();
    }

    return b.toString();
}

```

It works fine, but certain symbols like &nbsp, - , single quotes etc. are not getting copied correctly.
I try to save the page source as a `text/html` type into `amazon s3` and display it by accessing the page saved in the `s3 server`.

The symbols that I mentioned above are displayed as `�` .
Is there any solution for this?