我有一个带有NanoHTTPD服务器的应用程序,可以通过浏览器编辑笔记。它显示一个HTML表单,允许编辑笔记并将其发送到设备。但如果我输入äü,它会在android上显示"?",在我的浏览器中显示"ï?½"。
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>
如何显示äü?
编辑:
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("ä", "ä");
text = text.replaceAll("Ä", "Ä");
text = text.replaceAll("ö", "ö");
text = text.replaceAll("Ö", "Ö");
text = text.replaceAll("ü", "ü");
text = text.replaceAll("Ü", "Ü");
return text;
}
必须将"元音变音符"更改为HTML实体,HTML实体对这些字符进行编码。在这些情况下,它可以是:Ä
、Ö
或Ü
要获得更具体的帮助,请发布相关代码。
有一个库可用于unescapeHtml:Apache commons lang
(dependencies) compile 'commons-lang:commons-lang:2.3'
import org.apache.commons.lang.StringEscapeUtils;
.
.
String withUmlaut = StringEscapeUtils.unescapeHtml(yourString);