2013-06-30 54 views
0

我有一個NanoHTTPD服務器的應用程序,允許通過瀏覽器編輯註釋。它顯示一個HTML表格,允許編輯該筆記並將其發送到設備。但是如果我輸入äöü,它會顯示在android「?」上在我的瀏覽器中「�」。Android http服務器和德語「Umlaute」帖子

的HTML代碼:

<html> 
<head><title>Notes</title></head> 
<body><h1>Notes</h1><form method=POST> 
<textarea name=noe cols='50' rows='10'></textarea> 
<br> 
<input type=submit value=save></form></body> 
</html> 

如何顯示AOU?

編輯:

的java代碼:

@Override 
    public Response serve(String uri, Method method, 
      Map<String, String> headers, Map<String, String> parms, 
      Map<String, String> files) { 
     Response ret = null; 
     if (method == Method.GET) ret = new Response(Status.OK, MIME_HTML, getHTML()); 
     else if (method == Method.POST) ret = saveNote(parms); 
     return ret; 
    } 

    private Response saveNote(Map<String, String> parms) { 
     Notizen.notes = parms.get("notiz"); 
     osl.refresh(); 
     return new Response(Status.OK, MIME_HTML, getHTML()); 
    } 

    private String getHTML() 
    { 
     HtmlGenerator hg = new HtmlGenerator(); 
     String header = hg.start+hg.getSitetitle("Notes")+hg.zwischen+hg.getTitle("Notes"); 
     String form = hg.getForm("POST")+hg.getInputMultiline("note", Notizen.notes)+hg.brk+hg.getSubmit("save")+hg.endform; 
     String end = hg.stop; 
     String site = header+form+end; 
     return site; 
    } 

Umwandler:

public String formatTextUml (String text) 
    { 
     text = text.replaceAll("ä", "&auml;"); 
     text = text.replaceAll("Ä", "&Auml;"); 
     text = text.replaceAll("ö", "&ouml;"); 
     text = text.replaceAll("Ö", "&Ouml;"); 
     text = text.replaceAll("ü", "&uuml;"); 
     text = text.replaceAll("Ü", "&Uuml;"); 
     return text; 
    } 
+0

難道沒人知道答案嗎? – adnidor

+0

你是否用UTF-8提供你的html? – orique

+0

我不知道,我沒有指定字符集 – adnidor

回答

0

的 「Umlaute」 必須改變成HTML實體,這些代碼字符。在這些情況下,它可能是:&Auml;,&Ouml;&Uuml; 有關更具體的幫助,請發佈相關代碼。

+0

我編輯的帖子 – adnidor

0

有一個庫unescapeHtml:Apache commons lang

(dependencies) compile 'commons-lang:commons-lang:2.3'

import org.apache.commons.lang.StringEscapeUtils; 
. 
. 
String withUmlaut = StringEscapeUtils.unescapeHtml(yourString);