【问题标题】:Character Encoding downloading text from a web page字符编码从网页下载文本
【发布时间】:2013-07-19 10:11:23
【问题描述】:

我正在尝试从 HTML 页面获取一些文本,我可以正确下载,但西班牙语中的重音符号(á、é、í、ó、ú)和可能其他特殊字符(ü)显示为正方形一个 ?标记里面。

一旦我使用的 InputStreamReader 调用了 read 函数,文本已经像这样出现了,但是 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;
}

【问题讨论】:

    标签: android html character-encoding inputstreamreader


    【解决方案1】:

    尝试添加这个标题

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

    在你像这样连接到你的数据库之后

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

    添加这两行

    mysql_query("SET NAMES 'utf8'");
    mysql_query('SET CHARACTER SET utf8');
    

    【讨论】:

    • 太棒了。我正在对 Android 应用程序进行所有更改,它只需要更改在 php 页面中检索信息的方式。非常感谢,帮了大忙!
    【解决方案2】:

    试试这个:

        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 "";
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多