我正在尝试使用 PHP 以 UTF-16 编码生成 XML 文件,但是当我打开生成的文件时出现问题。我使用 DOMDocument 创建文件。使用 UTF-8 编码,没问题。使用 Notepad++ 打开 XML 文件时,它看起来像这样:
<?xml version="1.0" encoding="UTF-16"?>㰀伀䈀㸀ഀ
<CLIENT> 㰀䈀伀䴀㸀ഀ
<BO> 㰀䄀搀洀䤀渀昀漀㸀ഀ
<Object>2</Object> 㰀嘀攀爀猀椀漀渀㸀㈀㰀⼀嘀攀爀猀椀漀渀㸀ഀ
</AdmInfo> 㰀䈀甀猀椀渀攀猀猀倀愀爀琀渀攀爀猀㸀ഀ
<row>
㰀䌀愀爀搀吀礀瀀攀㸀㠀㰀⼀䌀愀爀搀吀礀瀀攀㸀ഀ
... 等等 !!!有人能帮助我吗 ?
使用 Notepad++,我将编码设置为没有 BOM 的 UTF-8,文件看起来像这样:
<?xml version="1.0" encoding="UTF-16"?>㰀伀䈀㸀ഀ
<CLIENT> 㰀䈀伀䴀㸀ഀ
<BO> 㰀䄀搀洀䤀渀昀漀㸀ഀ
<Object>2</Object> 㰀嘀攀爀猀椀漀渀㸀㈀㰀⼀嘀攀爀猀椀漀渀㸀ഀ
</AdmInfo> 㰀䈀甀猀椀渀攀猀猀倀愀爀琀渀攀爀猀㸀ഀ
<row> 㰀䌀愀爀搀吀礀瀀攀㸀㠀㰀⼀䌀愀爀搀吀礀瀀攀㸀ഀ
<CardCode>01000001</CardCode> 㰀⼀爀漀眀㸀ഀ
</BusinessPartners> 㰀⼀䈀伀㸀ഀ
</BOM> 㰀⼀䌀䰀䤀䔀一吀㸀ഀ
作为请求的 PHP 文件的一部分:
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');
非常感谢。