I am trying to generate an XML file in a UTF-16 encoding with PHP but there is a problem when I open the generated file. I use DOMDocument to create the file. With a UTF-8 encoding, no problem. When opening the XML file with Notepad++, it looks like this :
<?xml version="1.0" encoding="UTF-16"?>㰀伀䈀㸀ഀ
<CLIENT> 㰀䈀伀䴀㸀ഀ
<BO> 㰀䄀搀洀䤀渀昀漀㸀ഀ
<Object>2</Object> 㰀嘀攀爀猀椀漀渀㸀㈀㰀⼀嘀攀爀猀椀漀渀㸀ഀ
</AdmInfo> 㰀䈀甀猀椀渀攀猀猀倀愀爀琀渀攀爀猀㸀ഀ
<row>
㰀䌀愀爀搀吀礀瀀攀㸀㠀㰀⼀䌀愀爀搀吀礀瀀攀㸀ഀ
... and so on !!! Can someone help me please ?
Using Notepad++, I set encoding to UTF-8 without BOM and the file looks like that :
<?xml version="1.0" encoding="UTF-16"?>㰀伀䈀㸀ഀ
<CLIENT> 㰀䈀伀䴀㸀ഀ
<BO> 㰀䄀搀洀䤀渀昀漀㸀ഀ
<Object>2</Object> 㰀嘀攀爀猀椀漀渀㸀㈀㰀⼀嘀攀爀猀椀漀渀㸀ഀ
</AdmInfo> 㰀䈀甀猀椀渀攀猀猀倀愀爀琀渀攀爀猀㸀ഀ
<row> 㰀䌀愀爀搀吀礀瀀攀㸀㠀㰀⼀䌀愀爀搀吀礀瀀攀㸀ഀ
<CardCode>01000001</CardCode> 㰀⼀爀漀眀㸀ഀ
</BusinessPartners> 㰀⼀䈀伀㸀ഀ
</BOM> 㰀⼀䌀䰀䤀䔀一吀㸀ഀ
A part of the PHP file as request :
header('Content-Type: text/xml');
//header('Content-Transfer-Encoding: binary');
$xml = new DOMDocument();
$xml->version='1.0';
$xml->encoding='UTF-16';
$ob_client = $xml->createElement('OB');
$client_element = $xml->createElement('CLIENT');
$client_bom_element = $xml->createElement('BOM');
$client_bo_element = $xml->createElement('BO');
$client_adminfo_element = $xml->createElement('AdmInfo');
$client_adminfo_object_element = $xml->createElement('Object', '2');
$client_adminfo_version_element = $xml->createElement('Version', '2');
$client_BusinessPartners_element = $xml->createElement('BusinessPartners');
$client_BusinessPartners_row_element = $xml->createElement('row');
$client_BusinessPartners_row_cardtype_element = $xml->createElement('CardType', $_XML_CardType);
$client_BusinessPartners_row_cardcode_element = $xml->createElement('CardCode', $_XML_CardCode);
...
$xml->formatOutput = true;
echo $xml->saveXML();
$xml->save('rudy-xml-particulier'.$commandeId.'.xml');
Thanks a lot.