web-dev-qa-db-ja.com

PHP utf-8を含むxmlのヘッダー

header()関数を使用して、ファイルをXML標準に変換しています。問題は<?php header("Content-type: text/xml; charset=utf-8")を使用するときです。 ?>それは<?xml version="1.0"?>、enconding/charsetなし。間違って使用していますか?

14
msmafra

header()関数は、HTTPヘッダーを変更するだけです。投稿したコードはContent-Typeヘッダーを設定します。これは、ブラウザーや他のクライアントに、提供するファイルのタイプを通知するために重要です。

あなたが話している<?xml version="1.0"?>行はドキュメント自体の一部であり、HTTPヘッダーの影響を受けません。

タグは、DOMを使用してXMLドキュメントを作成していることを示しています。 DomDocumentコンストラクターを変更して文字セットも渡す場合は、

$doc = new DomDocument('1.0', 'UTF-8');

その文字セットをXMLドキュメントに出力する必要があります。

13
John Flatness

headerは、結果にHTTPヘッダーを設定するだけです。 PHPは、値に対して他に何もしないので、適切に使用されていることを確認するのはあなた次第です。

XMLライブラリを使用してXML(プロローグを含む)を生成している場合は、そのライブラリのドキュメントを確認してください。 「手動」でXMLを出力する場合(o、必要な属性をプロローグに追加する必要があります。

2
Michael Madsen

あなたも使うことができます

<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>
0
Sahan