001 /** 002 * Implements the Cold Fusion Function tostring 003 */ 004 package railo.runtime.functions.string; 005 006 import java.io.UnsupportedEncodingException; 007 008 import railo.commons.lang.StringUtil; 009 import railo.runtime.PageContext; 010 import railo.runtime.exp.PageException; 011 import railo.runtime.ext.function.Function; 012 import railo.runtime.op.Caster; 013 014 public final class ToString implements Function { 015 public static String call(PageContext pc ) { 016 return ""; 017 } 018 public static String call(PageContext pc , Object object) throws PageException { 019 return call(pc,object,null); 020 } 021 public static String call(PageContext pc , Object object, String encoding) throws PageException { 022 if(StringUtil.isEmpty(encoding)) { 023 encoding = pc.getResponse().getCharacterEncoding(); 024 if(StringUtil.isEmpty(encoding,true))encoding="UTF-8"; 025 } 026 027 if(object instanceof byte[]){ 028 if(encoding!=null) { 029 try { 030 return new String((byte[])object,encoding); 031 } 032 catch (UnsupportedEncodingException e) {e.printStackTrace();} 033 } 034 return new String((byte[])object); 035 } 036 return Caster.toString(object); 037 } 038 }