我有一点问题:我正在写文件的响应内容并将其作为ajax响应返回给客户端。
但是会出现html替换:>
到>
等......
我必须做些什么来取消这个替换?
res.setHeader( "Cache-Control", "must-revalidate, post-check=0, pre-check=0" );
res.setHeader( "Pragma", "public" );
res.setContentType( "text/html" );
TIA
更新
// import com.ibm.useful.http.PostData;
PostData pd = new PostData( req );
final FileData data;
try {
data = pd.getFileData( "sqlFile" );
ByteArrayOutputStream buf = new ByteArrayOutputStream();
for ( byte b : data.getByteData() ) {
buf.write( b );
}
res.getWriter().print( buf.toString() );
}
我通过调试器观看了buf.toString()
。没关系。替代进一步发展。但在哪里......
答案 0 :(得分:2)
HTML特殊字符已转义为HTML entities。
如果您确定这是在您将其写入响应之后以及响应数据到达客户端之前发生的,那么链中可能存在一个已转义HTML实体的过滤器由于某些原因。检查web.xml
中声明的过滤器,并在必要时调整url-pattern
。
答案 1 :(得分:0)
这通常发生在html字符(
<,> ,“
等等)正在逃脱。 尝试将escape设置为false或类似。 找不到“com.ibm.useful.http.PostData”
的api文档答案 2 :(得分:0)
尝试使用以下代码段:
res.setContentType("text/html; charset=UTF-8");
如果您使用的话,请确保您的数据库也设置为UTF-8编码。
如果仍未解决,请阅读此article。