我从SQlite数据库中获取HTML编码内容,我想在WebView中显示.我目前正在使用:
public class ShowAbstracts extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle extras = getIntent().getExtras(); if (extras != null) { String body = extras.getString(DatabaseHelper.KEY_BODY); WebView webview = new WebView(this); setContentView(webview); String summary = " "+body+" "; webview.loadData(summary, "text/html", "iso-8859-1"); } } }
它起作用,它打开一个WebView并显示内容,但我得到奇怪的字符,对于一些内容,它只是崩溃.数据库采用ISO-8859-1编码.有没有办法处理我的数据库内容中的特殊字符并正确显示它们?
首先十分感谢!
里克
成功!
解决这个问题是三件事的组合:
uri编码字符串
在标识utf-8编码的HTML字符串中粘贴头部
安装LibreOffice,允许将用于生成SQLite数据库的xls文件保存为带有utf-8编码的csv文件(据我所知,不能从MS Office Excel中获知).
.
public class ShowAbstracts extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle extras = getIntent().getExtras(); if (extras != null) { String body = extras.getString(DatabaseHelper.KEY_BODY); WebView webview = new WebView(this); setContentView(webview); String summary = ""+body+" "; String uri = Uri.encode(summary); webview.loadData(uri, "text/html", "utf-8"); } } }