2016-09-15 61 views
0

我有一個非常簡單的WebView需要顯示文本爲HTML。我從位於byte陣列中的服務器檢索數據。我需要將這個byte數組顯示爲可讀文本。Android WebView未完全解碼字符串

var wv = FindViewById<WebView>(Resource.Id.webview); 

var container = AutoFac.Container; 
_routinesService = container.Resolve<IRoutinesService>(); 
byte[] documentHtml = _routinesService.GetFragment(documentId); 

string mimeType = "text/html"; 
string encoding = "utf-8"; 
var html = System.Text.Encoding.UTF8.GetString(documentHtml); 

wv.LoadDataWithBaseURL("", html, mimeType, encoding, ""); 

我嘗試將byte陣列轉換爲String,變量html變得\"U3RlcCAxOiBZb3UgYXJlIGEgd2lubmVyLg==\"

這看起來像Base64的我,當我使用的在線轉換器(https://www.base64decode.org/),它並轉換成正確的文字。但在WebView屏幕上的輸出只是看起來像"U3RlcCAxOiBZb3UgYXJlIGEgd2lubmVyLg=="

任何想法可能會失蹤?

只是更多的信息,這是在Xamarin.Android所以代碼是C#而不是Java(但沒有太大的區別)。

回答

0

你嘗試過的JavaScript

ATOB()

方法解碼已用基64編碼它發佈到web視圖之前編碼數據的字符串。

+0

我沒有。 WebView只需要顯示HTML,所以我不想添加在其中運行JavaScript的功能。我曾嘗試使用Convert.ToBase64String,將該字符串轉換回字節數組,然後再次將其解碼爲UTF8,但得到相同的結果。 –