我自己写的和使用的函数,可以使用的。 public static final String escapeHTMLTags(String in) { if (in == null) { return null; } char ch; int i = 0; int last = 0; char[] input = in.toCharArray(); int len = input.length; StringBuffer out = new StringBuffer(); while (i < len) { ch = input[i]; if (ch == '<') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append("<"); i++; continue; } else if (ch == '>') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(">"); i++; continue; } else if (ch == '\r') { char chNext = input[i+1]; if ((byte) chNext == '\n') { if (i > last) { out.append(input, last, i - last); } last = i + 1 + 1; out.append("<BR>"); i +=2; continue; } } else if (ch == '\n') { if (i > last) { out.append(input, last, i- last); } last = i + 1; out.append("<BR>"); i++; continue; } else if (ch == ' ') { if (i > last) { out.append(input, last, i- last); } last = i + 1; out.append(" "); i++; continue; } else { i++; } } if (last == 0) { return in; } if (i > last) { out.append(input, last, i - last); } return out.toString(); }
可能是编码的问题吧?可以试试用编码 replace("\u000D\u000A", "<br>")
我上面程序中的这一段就是用来转换空格的. else if (ch == ' ') { if (i > last) { out.append(input, last, i- last); } last = i + 1; out.append(" "); i++; continue; }
情况什这样的,我们用微软的sharepoint portal server作二次开发,发现他主要用utf-8进行编码,无法实现回车换行,您有什么办法吗?
public static final String escapeHTMLTags(String in)
{
if (in == null)
{
return null;
}
char ch;
int i = 0;
int last = 0;
char[] input = in.toCharArray();
int len = input.length;
StringBuffer out = new StringBuffer();
while (i < len)
{
ch = input[i];
if (ch == '<')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append("<");
i++;
continue;
}
else if (ch == '>')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1;
out.append(">");
i++;
continue;
}
else if (ch == '\r')
{
char chNext = input[i+1];
if ((byte) chNext == '\n')
{
if (i > last)
{
out.append(input, last, i - last);
}
last = i + 1 + 1;
out.append("<BR>");
i +=2;
continue;
}
}
else if (ch == '\n')
{
if (i > last)
{
out.append(input, last, i- last);
}
last = i + 1;
out.append("<BR>");
i++;
continue;
}
else if (ch == ' ')
{
if (i > last)
{
out.append(input, last, i- last);
}
last = i + 1;
out.append(" ");
i++;
continue;
}
else
{
i++;
}
}
if (last == 0)
{
return in;
}
if (i > last)
{
out.append(input, last, i - last);
}
return out.toString();
}
else if (ch == ' ')
{
if (i > last)
{
out.append(input, last, i- last);
}
last = i + 1;
out.append(" ");
i++;
continue;
}