2013-06-30 1 views
0

У меня есть приложение с NanoHTTPD-сервером, которое позволяет редактировать заметки через браузер. Он отображает HTML-форму, которая позволяет редактировать заметку и отправлять ее на устройство. Но если я набираю äöü, он отображается на андроиде «?» в моем браузере «ï¿½».HTTP-сервер Android и немецкий пост «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> 

Как отобразить äöü?

Edit:

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

Вы обслуживаете свой html с UTF-8? – 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^