2011-06-01 52 views
0

我有一個html代碼,我保存在home.txt文件中,並將其放在原始文件夾中。現在我想在WebView中顯示相同的內容。我使用了下面的代碼。在WebView中的Android中文結構

homeWebview = (WebView) findViewById(R.id.homeWebview); 
InputStream fileStream = getResources().openRawResource(R.raw.home); 
int fileLen = fileStream.available(); 

// Read the entire resource into a local byte buffer. 
byte[] fileBuffer = new byte[fileLen]; 
fileStream.read(fileBuffer); 

fileStream.close(); 
displayText = new String(fileBuffer); 

//Display content.   
homeWebview.loadData(displayText, "text/html", "utf-8"); 

它工作正常。現在我必須在html中顯示一些中文字符。我在home.txt中添加了中文字符。這裏是html代碼:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Language</title> 
<style type="text/css"> 
body {font-family: HelveticaExt-normal, Helvetica, Arial, sans-serif;margin:0;font-size:20px;color:#000000;} 
.mainWrapper {margin:0;} 
p {margin: 10px;} 
p.bodytext {margin: 0 10px 20px;} 
.headerText { background:#eeeeee; background: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#e0e0e0));border-top: 2px solid #000000;padding-bottom:7px;} 
.headerText p {margin: 10px 10px 0 10px;} 
a {color:#324f85;text-decoration:underline;} 
.headerbar {border-top:2px solid #000000;border-bottom:2px solid #000000;height:34px;font-family:HelveticaExt-bold, Helvetica, Sans-serif;color:#fff;font-size:18px;padding-left:10px;line-height:34px;margin:0; 
background:-webkit-gradient(linear, left top, left bottom, from(#494e4f), to(#787a7c)); 
} 
.navigationList {list-style-type:none;padding:0;margin:0;} 
.navigationList li {height:60px;border-bottom:2px solid #e0e0e0;background-position:10px center;background-repeat:no-repeat;padding-left:60px;line-height:28px; 
} 
</style> 
</head> 

<body> 
<div class="mainWrapper"> 
    <div class="headerText"> 
     <p歡迎您到泰國語言主持人!我們有更多的語言,禮儀人員和臨時演員即將推出!<a href="http://www.test.com">www.test.com</a> 欲瞭解更多信息!</p> 
    </div> 
</div> 
</body> 

現在它正在顯示常見字符,但所有中文字符都顯示爲未知字符。什麼是概率在我的代碼

回答

1

的了home.txt文件中UTF-8編碼不是,我在記事本++中打開它並更改編碼。現在它正在正確顯示。

0

我覺得問題在這一行:

displayText = new String(fileBuffer); 

你應該改變以

displayText = new String(fileBuffer, "UTF-8"); 
+0

我剛試過它......但它不工作。它給出相同的輸出。 – 2011-06-01 07:36:19

4

使用webView.loadDataWithBaseURL (null, text, "text/html", "utf-8", null);