2

phpを使用してxmlドキュメントを解析しています。

ブラウザで結果を見ると、次の文字が表示されます。

スペイン語の代わりにñ

íの代わりにÃ

áの代わりにá

óの代わりにó

éの代わりにé

私はstr_replaceを使用して、すべての奇数文字を適切な文字に置き換えるつもりでしたが、悲しいことに、前のパターンはたまにしか発生せず、一般に、奇数文字の幅広いコレクションがあります:(

xmlの見出しは次のとおりです。

<?xml version="1.0" encoding="iso-8859-1"?>

しかし、utf-8に変更すると、印刷されません。

simplexml_load_stringを使用してxmlを文字列としてロードします(そのようなデータベースから取得されます)

これを解決する方法について何かアイデアを教えてください。

どうもありがとう

4

4 に答える 4

2

2つのオプションがあります:

a)header('Content-Type: text/html; charset=iso-8859-1');phpファイルの出力の前にaを含めます。

b)出力をutf-8に変換します$str = mb_convert_encoding($str, 'UTF-8', 'ISO-8859-1');

どちらもうまくいくはずです。

于 2012-10-25T15:15:59.287 に答える
0

SimpleXMLUTF-8 を使用して格納された文字列をエンコードします。iso-8859-1 で XML ファイルを使用できますが、このエンコーディングで XML 値を出力する場合は、事前に使用する必要がありますutf8_decode

于 2012-10-25T15:10:15.120 に答える
0

$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

于 2012-10-25T15:10:41.190 に答える
0
// new xml
$xml = new SimpleXMLElement('new.xml'); 

// Displaying XML in textual form
echo $xml->asXML();
于 2014-07-18T22:56:54.360 に答える