gpt4 book ai didi

java - 读取从 PHP 回显的字符串到 java 中?

转载 作者:行者123 更新时间:2023-12-01 15:51:23 24 4
gpt4 key购买 nike

我正在尝试使用以下代码从服务器检索通过 PHP 回显的响应。执行此代码时,字符串比较方法compareTo() 和(...).equals(..) 无法正常工作。我尝试了各种选项,并且确信尽管似乎将响应转换为字符串格式,但“responseText”并不具有典型的字符串属性。如果我有 3 个字符串文字语句,其中之一是从 findUser.php 中回显的。我怎样才能将它读入java以允许我确定字符串的内容,就像我在这里尝试做的那样?我发现很多关于需要创建 BufferedReader 对象的讨论,但我不明白如何实现它。如果有人能为我列出步骤,我将非常感激。

 try {  
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(".../findUser.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
final String responseText = EntityUtils.toString(response.getEntity());


if(responseText.compareTo("Not Registered") == 0 || responseText.compareTo("Error") == 0) {
Log.i("KYLE","TRUE");
// DISPLAY ERROR MESSAGE
TextView loginError = (TextView)findViewById(R.id.loginErrorMsg);
loginError.setVisibility(View.VISIBLE);
loginError.setText(responseText);
}
else {
GlobalVars.username = userEmail;
Login.this.finish();
Intent intent = new Intent(Login.this,Purchase.class);
startActivity(intent);
}
catch(Exception e) {Log.e("log_tag", "Error in http connection"+e.toString());}

}

最佳答案

如果您的 responseText 日志消息看起来正确,但比较方法返回 false,则您可能存在字符集问题。在许多情况下,看似相同的字符出现在不同字符集的不同代码点上。

EntityUtils.toString() 的文档指出当未指定字符集时,它会尝试分析实体或只是回退到 ISO-8859-1。

UTF-8 通常是安全的默认值。尝试将其添加到 PHP 脚本的顶部:

<?php 
header('Content-Type: text/plain; charset=utf-8');
?>

EntityUtils 应该会选择它,如果没有,您可以将“utf-8”传递给 toString() 方法以强制它使用相同的字符集。

关于java - 读取从 PHP 回显的字符串到 java 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5958743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com