2012-06-12 51 views
1

我正在解析html內容並在屏幕上顯示輸出。這個網站有土耳其字符,如çÇşŞöÖğĞıİÜÜ。我無法將它們顯示爲正確的字符,它們仍然被打印爲問號。解析時出現土耳其字符問題(Android)

的Eclipse - >項目 - >屬性 - >資源 - >文本文件編碼爲從容器繼承

我搜索網頁,發現這個解決方案(Cp1254):

的Eclipse - >項目 - >屬性 - >資源 - >文本文件編碼=其他:UTF-8

但是,它不工作。它只會改變我的文件的當前字符。 (我有我的活動有這樣的字符的標題)

任何幫助嗎?在此先感謝...

+0

顯示代碼(^_^) – pgsandstrom

+0

澄清:您只更改了IDE中的編碼,而不是您的應用中的編碼。 – pgsandstrom

+0

所以,任何建議,以改變它在我的應用程序:)是否與我的代碼真的有關? –

回答

0

好的,我終於找到了一個真正的解決方案。根據解析的位置(我從charset = iso-8859-9和Eclipse上檢索數據,使用utf-8),應該進行字符替換操作。對於我的情況,

context = context.replaceAll("İ", "İ"); 
    context = context.replaceAll("ı", "ı"); 
    context = context.replaceAll("Ö", "Ö"); 
    context = context.replaceAll("ö", "ö"); 
    context = context.replaceAll("Ü", "Ü"); 
    context = context.replaceAll("ü", "ü"); 
    context = context.replaceAll("Ç", "Ç"); 
    context = context.replaceAll("ç", "ç"); 
    context = context.replaceAll("Ğ", "Ğ"); 
    context = context.replaceAll("ğ", "ğ"); 
    context = context.replaceAll("Ş", "Ş"); 
    context = context.replaceAll("ş", "ş"); 

其中上下文是一個字符串,它包含所有解析的數據並將打印在TextView上。就這樣。我應該以前想過很多!

0

這一切都取決於你如何解析HTML到內存中。如果從掃描儀類文件retrieveing它和HTML文件保存爲UTF-8,那麼這樣做:

Scanner scanner = new Scanner(file, "UTF-8"); 

如果從網絡與org.apache.http包讀它,並具有作爲HttpEntity對象的內容,則如下所示:

String content = EntityUtils.toString(httpEntity, "UTF-8"); 

iee這完全取決於你如何閱讀html文件。通常您可以在創建閱讀器時指定編碼。您必須將其與此文件保存的編碼進行匹配。

+0

謝謝你的回答。 html文件保存爲iso-8859-9,我使用java.net.HttpURLConnection。答案沒有幫助我,但我已經改變了網站內容,因爲我可以使用 –