On the road of code farmers, there is no way out !!!
Oracle Output CSV File with UTF8 BOM for MS Excel to open it
select unistr('\feff') as bom,length(unistr('\feff') ) length from dual;