我的应用无法正确显示重音字符。我去年调查了这个,但未能找到解决方案。我一直在挖掘,但仍然没有找到解决方案。我提供了一个屏幕截图,显示当用户在EditText字段中输入“LondonChâteau”时发生的情况,该字段在单击按钮时加载到WebView中。重音字符“â”未按预期转换。它翻译为“Ãç”,“伦敦Chäteau”。很想得到解决方案,提前谢谢。
我提供了代码来演示:
public class MainActivity extends Activity {
private WebView webView;
private EditText edittext_1;
private Button buttonUpdate;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webview_summary);
webView.getSettings().setJavaScriptEnabled(true);
edittext_1 = (EditText) findViewById(R.id.editText_1);
buttonUpdate = (Button) findViewById(R.id.button_update);
buttonUpdate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String s = edittext_1.getText().toString();
webView.loadData(s, "text/html", "utf-8");
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webview_summary"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight=".85" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight=".15" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<EditText
android:id="@+id/editText_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"
android:hint="text"
android:minWidth="100dp"
android:text="" />
<Button
android:id="@+id/button_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/editText_1"
android:padding="10dp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:13)
我一发布就发现了一个有效的建议。我更改了以下行:
webView.loadData(s, "text/html", "utf-8");
到:
webView.loadDataWithBaseURL(null, s, "text/html", "utf-8", null);
答案 1 :(得分:0)
尝试从Html.fromHtml
String s = Html.fromHtml(edittext_1.getText().toString()).toString();