0

HTML ページからテキストを取得しようとしています。正しくダウンロードできますが、スペイン語のアクセント (á、é、í、ó、ú) とおそらく他の特殊文字 (ü) が ? の付いた四角形のように表示されます。中に印をつけます。

私が使用する InputStreamReader が読み取り関数を呼び出すと、テキストは既にこのように表示されますが、コンテンツを格納する HTML ページとデータベースは問題ありません。

InputStreamReader に期待する文字エンコーディングを指定する方法はありますか? 私は元々データベースで utf8_general_ci を使用しており、それをテキストを取得する php ページに表示しています。

ありがとう。

private String DownloadText (String URL)
{
    int BUFFER_SIZE = 2000;
    InputStream in = null;
    try
    {
        in = OpenHttpConnection(URL);
    }
    catch (IOException e)
    {
        return "";
    }

    InputStreamReader isr = new InputStreamReader(in);
    int charRead;
    String str = "";
    char[] inputBuffer = new char[BUFFER_SIZE];
    try
    {
        charRead = isr.read(inputBuffer);
        str = String.copyValueOf(inputBuffer,0,charRead);
        inputBuffer = null;
        in.close();
    }
    catch(IOException e)
    {
        return "";
    }
    return str;
}
4

2 に答える 2

1

このヘッダーを追加してみてください

header('Content-Type: text/html; charset=utf-8' );

そして、このようにDBに接続した後

// Connect to server and select database.
$login = mysql_connect("www.yoursite.com","username","password") 
or die (mysql_error());
mysql_select_db("yourDatabase", $login);

その2行を追加

mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
于 2013-07-19T10:16:18.513 に答える
0

これを試して:

    BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"), BUFFER_SIZE);
    String str;
    try
    {
        while ((str = br.readLine()) != null) {
            file += str;
        }
    }
    catch(IOException e)
    {
        return "";
    }
于 2013-07-19T10:36:02.960 に答える