打开openoffice选好编码,能完成转换,没有乱码,但是用php就是乱码了,初步确定是没设置编码,请问在php中如何设置编码,php代码如下....
- PHP code
<?php set_time_limit(0);function MakePropertyValue($name,$value,$osm){ $oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue"); $oStruct->Name = $name; $oStruct->Value = $value; return $oStruct;}function word2pdf($doc_url, $output_url){ $fdoc_url = "file:///" . $doc_url; $foutput_url = "file:///" . $output_url; $osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.n"); $args = array(MakePropertyValue("Hidden",true,$osm)); $oDesktop = $osm->createInstance("com.sun.star.frame.Desktop"); $oWriterDoc = $oDesktop->loadComponentFromURL($fdoc_url,"_blank", 0, $args); $export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm)); $oWriterDoc->storeToURL($foutput_url,$export_args); $oWriterDoc->close(true);}$output_dir = "F:/ComsenzEXP/wwwroot/";$doc_file = "F:/ComsenzEXP/wwwroot/11.csv";$pdf_file = "513.pdf";$output_file = $output_dir . $pdf_file;if(!file_exists($output_file)){word2pdf($doc_file,$output_file);}?>
------解决方案--------------------
你不是 COM 吗?那你看看 com.sun.star.ServiceManager 是否提供了设置编码的方法就是了