我试图将xml代码转换为字符串。这是一个例子:
URL: .../importarxml?enviosXml=<?xml version="1.0" encoding="iso-8859-1"?>+<lista>+<envio>+<REFERENCIA>XXXXXX</REFERENCIA>+<CODIGO>XXXXX</CODIGO>+<CLIENTE>OCAÑA</CLIENTE>+<FCARGA>13/12/2013</FCARGA>+<LCARGA>XXX</LCARGA>+<DESTINATARIO>XXXXX</DESTINATARIO>+<FENTREGA>18/12/2013</FENTREGA>+<LENTREGA>PARIS</LENTREGA>+<MATRICULA>XXXXXX</MATRICULA>+<BULTOS>2</BULTOS>+<PESO>1302</PESO>+<OBSERVACIONES></OBSERVACIONES>+</envio>+</lista>
我的代码是在symfony的Controller中从URL获取参数:
class EnviosController extends Controller{
public function importarxmlAction(){
$request = $this->getRequest();
$em = $this->getDoctrine()->getManager();
$xml = $request->query->get('enviosXml'); // $xml get bad characters
ld($xml); --> (Displays $xml string content. Show bad characters)
//For example 'OCAÑA'-->'OCA�A'
(ldd-->LadybugBundle)
$utf8_1 = utf8_decode($xml);
$utf8_2 = iconv('UTF-8', 'ISO-8859-1', $utf8_1);
$utf8_2 = mb_convert_encoding($utf8_2, 'ISO-8859-1','UTF-8');
ld($utf8_2); // Display $utf8_2 content
...
}
}
我尝试了utf8_decode(),iconv()和mb_convert_encoding(),但没有帮助我。我不知道还能做什么,如果有人能帮助我,我会很感激。
感谢。
P.S:抱歉我的英文不好!答案 0 :(得分:0)
通过GET方法在URL中传递整个XML并不是一个好主意。你的网址甚至没有被转义为用作网址字符串......
您应该通过其ID /名称提供现有文件的引用,或者通过表单上传(方法POST)
然后检查文件的编码。