Строка, переданная в loadData
, должна быть экранирована URI.
Вы можете использовать URLEncoder.encode()
, чтобы сделать это, но по какой-то причине WebView
не декодирует '+'
обратно в' '
.Один из обходных путей - заменить все '+'
на '%20'
самостоятельно.
Например (и с переводом '+'
):
<code>try {
webview.loadData(URLEncoder.encode("<html><body><pre>line 1\nline 2
","utf-8 "). replaceAll (" \\ + ","% 20 ")," text / html "," utf-8 ");} catch (UnsupportedEncodingException uee) {Log.e (" webview "," ", ие);}