grabURL
問題は、呼び出し元のWebページから読み取ったテキストが、に入力したテキストと完全に等しいことを期待していることString lorem
ですonPostExecute
。
しかし、Androidは「いいえ、そうではありません!」と言っています。
Androidが平等について正しくないと思うのはなぜですか?
1)StackTraceスクリーンショット:
2)スクリーン写真:
3)私のクラスで下を見つけString lorem = "Lorem ipsum dolor sit amet";
て、私がテキストを読んでいるWebページのソースコードを調べてください。
私のクラスのソースコード:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
grabURL("http://www.cyberweb.pp.ua/x/o.html");
}
public void grabURL(String url) {
new GrabURL().execute(url);
}
private class GrabURL extends AsyncTask<String, Void, Void> {
private final HttpClient Client = new DefaultHttpClient();
private String Content;
private String Error = null;
protected Void doInBackground(String... urls) {
try {
HttpGet httpget = new HttpGet(urls[0]);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
Content = Client.execute(httpget, responseHandler);
} catch (ClientProtocolException e) {
Error = e.getMessage();
cancel(true);
} catch (IOException e) {
Error = e.getMessage();
cancel(true);
}
return null;
}
protected void onPostExecute(Void unused) {
String lorem = "Lorem ipsum dolor sit amet";
if (Error != null) {
Toast.makeText(MainActivity.this, Error, Toast.LENGTH_LONG)
.show();
} else {
TextView xyu = (TextView) findViewById(R.id.xyu);
TextView xyu1 = (TextView) findViewById(R.id.xyu1);
TextView xyu2 = (TextView) findViewById(R.id.xyu2);
xyu.setText(Content);
xyu1.setText(lorem);
Log.v("lorem", lorem);
Log.v("Content", Content);
String eq = null;
if (Content.length() != lorem.length()) {
Log.v("length?", "Different length");
}
if (Content.trim().equalsIgnoreCase(lorem.trim())) {
xyu2.setText("EQUAL");
eq = "EQUAL";
Log.v("equal?", eq);
}
else {
xyu2.setText("NOT EQUAL");
eq = "NOT EQUAL";
Log.v("equal?", eq);
}
}
}
}
}
この問題は私を悩ませています。
誰かが何が起こるかを推測しますか?前もって感謝します!
最後のスタックトレース:
この問題は、Webページのエンコーディングが原因で発生しました。エンコーディングをに変更すると、等式は正しくなり UTF-8
ます。