pentaho5 使用saiku作为UI,当schema使用中文,会出现乱码情况。是因为mondrian读取schema文件的时候编码错误,schema建议使用" UTF-8无BOM格式文件"。需修改一下源代码: 一、修改mondrian.jar 包下的 mondrian.olap.Util.java 下的 readVirtualFileAsString方法,如下: public static String readVirtualFileAsString( String catalogUrl) throws IOException { InputStream in = readVirtualFile(catalogUrl); try { final byte [] bytes = Util. readFully(in, 1024); final char [] chars = new char [bytes. length ]; for ( int i = 0; i < chars. length ; i++) { chars[i] = ( char ) bytes[i]; } String str = new String(bytes, "gbk" ).replace( "\ufeff" , "" ); //加replace("\ufeff", "")是为了过滤"UTF-8无BOM格式文件"的开头 return str; } finally { if (in != null ) { in.close(); } } } 二、修改mondrian.jar 包下的 mondrian.rolap.RolapSchema.java 下的 load() 方法: protected void load(String catalogUrl, String catalogStr) { try { final Parser xmlParser = XOMUtil.createDefaultParser(); final DOMWrapper def; if (catalogStr == null ) { InputStream in = null ; try { // TODO wanpUpdate 配置文件乱码问题 def = xmlParser.parse(Util.readVirtualFileAsString(catalogUrl)); } finally { if (in != null ) { in.close(); } } 以上为 load()方法的部分代码,修改的时候请对比差异部分进行修改。