2013-01-23 28 views
5

Tôi đang sử dụng mã sau để mã hóa tệp html nằm trong thư mục nội dung của tôi. Tôi đã đi qua nhiều liên kết ở đây nhưng không thành công. Đây là đoạn mã của tôi.UTF-8 không mã hóa html trong webview android

WebSettings settings = myWebVeiw.getSettings(); 
    //settings.setJavaScriptEnabled(true); 
    //myWebVeiw.getSettings().setJavaScriptEnabled(true); 
    settings.setDefaultTextEncodingName("utf-8"); 
    //settings.setDefaultTextEncodingName("ISO-8859-1"); 

    myWebVeiw.loadUrl("file:///android_asset/"+totaldays+".html"); 

Mặc dù nó hoạt động với các ký tự khác nhưng không thể mã hóa - nó cũng in giống nhau trên màn hình web. Vui lòng đề nghị tôi phải làm gì.

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

1

Bạn có thể thử và kiểm tra:

myWebVeiw.loadDataWithBaseURL("file:///android_asset/"+totaldays+".html", null, "text/html", "utf-8",null); 
+0

Có, tôi đã thử với nó nhưng nó không hiển thị gì ngoài một trang trống. Đây có thể là lý do mà html có thể không được giải mã một cách chính xác. – vyas

+0

điều này không hiển thị html – ArdaA

0

Không phải như vậy quen thuộc với WebView. Nhưng trình duyệt phân tích cú pháp bảng mã ký tự html sau: 1. bộ ký tự đầu tiên. Vui lòng kiểm tra totaldays.html <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 2. theo nội dung.

+1

Meta không hỗ trợ trong trường hợp của tôi. vì nó là html tĩnh tôi đoán vì vậy tôi đã cố gắng bởi nó..Waiting cho khách hàng. Tôi đoán đây có thể là hình thức giải mã html xấu mà khách hàng thats lý do tại sao không mã hóa trên phía Android. – vyas

10

Bạn cần đặt mã hóa văn bản mặc định WebSettings thành utf-8. Và sau khi buộc bảng mã tiêu đề html thành utf-8. Exmple:

String htmlText = "<html> your page here </html>"; 
WebView web = (WebView) findViewById(R.id.webview); // get your webview from the layout 
WebSettings settings = web.getSettings(); 
settings.setDefaultTextEncodingName("utf-8"); 
web.loadData(htmlText, "text/html; charset=utf-8", "utf-8"); 

Điều đó phù hợp với tôi trên Android 2.2.1, 4.0.4 và 4.1.2.

+3

với "text/html; charset = utf-8", "utf-8" đã hoạt động đối với tôi. cảm ơn. (android 5.0.1) – chrome

+1

"văn bản/html; charset = utf-8" là trình giải quyết chính cho tôi. Cảm ơn! –