エンコードが OCS-2 ビッグ エンディアンのファイルを PHP で作成するにはどうすればよいですか? 私が統合しようとしている産業用システムには、このエンコード形式が必要です。
問題を単純化するために、ファイルに書き込もうとしていたコンテンツが変数$sXMLに格納されていると仮定します。この場合、XML ヘッダーにエンコーディングが設定された XML コンテンツが用意されています。
$sXML = '<?xml version="1.0" encoding="utf-16BE"?>';
$sXML .= '<envelope><node>1</node><node>2</node><node>3</node></envelope>';
/* Insert solution here */
file_put_contents( 'filename.xml', $sXML );
これまでのところ、次のようなことを試しました:
$sXML = iconv( '', 'UCS-2BE', $sXML );
$sXML = html_entity_decode( htmlentities( $sXML, ENT_QUOTES, 'Windows-1252' ), ENT_QUOTES, 'UCS-2BE' );
$sXML = mb_convert_encoding( $sXML, 'UCS-2BE', 'HTML-ENTITIES' );
これらはすべて、Notepad++ で生成されたファイルの可読性を損ないますが、ファイル エンコーディングが UCS-2BE に設定される原因にはなりません。
OCS-2 ビッグ エンディアン エンコーディングに慣れていない場合は、次の記事を読むことが不可欠/役立つかもしれません: Better Explained (ブログ): Understanding Big and Little Endian Byte Order .
ここで StackOverflow の他の質問を調べてみましたが、この特定の問題の解決策を見つけたか、他の質問をこれに適応させることができました。どんな助けでも本当に感謝します! ありがとうございました。