Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 字符编码从网页下载文本_Android_Html_Character Encoding_Inputstreamreader - Fatal编程技术网

Android 字符编码从网页下载文本

Android 字符编码从网页下载文本,android,html,character-encoding,inputstreamreader,Android,Html,Character Encoding,Inputstreamreader,我正在尝试从HTML页面获取一些文本,我可以正确下载,但西班牙语的重音(á,é,í,ó,ú)和其他特殊字符(ü)可能会显示为一个带“?”的正方形?在里面做标记 一旦我使用的InputStreamReader调用了read函数,文本就会像这样出现,但是HTML页面和存储内容的数据库都很好 是否仍然需要向InputStreamReader指定它应该使用的字符编码?我最初在数据库中使用utf8\u general\u ci,然后将其显示到获取文本的php页面中 谢谢 private String Do

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

一旦我使用的InputStreamReader调用了read函数,文本就会像这样出现,但是HTML页面和存储内容的数据库都很好

是否仍然需要向InputStreamReader指定它应该使用的字符编码?我最初在数据库中使用utf8\u general\u 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;
}

尝试添加此标题

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');
试试这个:

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

太神了我在Android应用程序上做了所有更改,只需要更改php页面中检索信息的方式。非常感谢,帮了大忙!