手动加入BOM头信息

来源:互联网 发布:java方法名带下划线 编辑:程序博客网 时间:2024/06/08 19:39
最近在使用FusionCharts做报表图形的时候、数据是生成的UTF-8格式的xml文件、但是生成后总是没有BOM头信息的、这样的xml当里面含有中文字符的时候、FusionCharts不能正常解析、报数据格式错误、手动加入BOM头信息的方法:
public String createXML(String xml, HttpServletRequest request, String bcode)throws FileNotFoundException {BufferedWriter bw = null;OutputStreamWriter osw = null;String path = request.getSession().getServletContext().getRealPath("/")+ "\\html\\portlet\\ext\\datacenter\\data\\" + bcode + ".xml";File file = new File(path);FileOutputStream fos = new FileOutputStream(file, false);try {// write UTF8 BOM mark if file is emptyif (file.length() < 1) {final byte[] bom = new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF };fos.write(bom);}osw = new OutputStreamWriter(fos, "UTF-8");bw = new BufferedWriter(osw);if (xml != null)bw.write(xml);} catch (IOException ex) {try {throw ex;} catch (IOException e) {e.printStackTrace();}} finally {try {bw.close();fos.close();} catch (Exception ex) {}}return "/html/portlet/ext/datacenter/data/" + bcode + ".xml";}
另外:在websphere环境下、获取绝对路径与Tomcat有点差异、
String path = request.getSession().getServletContext().getRealPath("/")+"\\html\\portlet\\ext\\datacenter\\data\\" + bcode + ".xml";
WAS环境需要在html前再加一个斜杠

原创粉丝点击