2012-02-03 6 views
1

これは愚かな質問かもしれませんが、私は何を見つけることができますか、それは私が何を検索するか分からないことです。 PHPで正しく表示されない特殊文字がいくつかあります。私はxmlファイルからいくつかの情報を取って、エコーしています。xmlファイルの特殊文字は、PHPを使って正しく表示されません

すなわち:

があるべき - >Nürnberg

何を探して上の任意のヒントを、またはこれを解決する方法を - >ニュルンベルク

としてエコー?

答えて

1
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
+0

yeap、thanx。 decezeの答えに対する私のコメントを見てください。 –

0

は、あなたのHTMLの頭の中でmetaタグを以下に試すことができますあなたが

http://www.w3schools.com/tags/ref_charactersets.asp

+0

、すべてが同じ文字セットである:これらの記事でスピードアップを取得してHTML、フォーム、データベース、ファイル...できるエディタでXMLファイルを開きます。それをUTF-8のような別のフォーマットで保存します。 – djot

0

からエコーしているページで異なる文字セットを試してみてください。

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
0

"私は、XMLファイルからいくつかの情報を取っているし、それらをエコー-INGの。"

Windowsコマンドラインは、UTF8フォントを使用しないため、utf8を適切にサポートしていません。

ファイルをWebサーバー経由で到達可能な場所に置いて、Webサーバー経由でファイルを呼び出してテストしてください。 代わりにパイプテキストファイルにスクリプトの出力:

のphp test.phpを>

のいずれかのオープンoutput.txtとoutput.txtとは、UTF8対応のエディタであるか、UTF8できる「テール」プログラムを使用しています。 test.phpを

<?php 
    echo "Nürnberg"; 
?> 

は、コマンドプロンプトから実行:

php test.php 

Nürnberg 

Webサーバhttp://localhost/test.php

Nürnberg 
+0

これは* font *の問題ではなく、* encoding *の問題です。また、なぜWindowsコマンドラインについて具体的に言及していますか? – deceze

+0

6ヵ月ごとにPHPがWindowsのコマンドラインでこのように動作することを忘れてしまい、ちょうどWindowsがあまり良くないと覚えているときにエンコーディングエラーを検索するのに1時間を費やします。 – Danack

0

を通じて呼び出すと、あなたのXMLの文字エンコーディングの間に不一致がありますあなたがPHPから出力しているもの。おそらく、1つはUTF-8で、もう1つはISO-8859です。 PHP側で

、あなたがXML側で

<?php 
header('Content-Type: text/plain; charset=ISO-8859-1'); 
header('Content-Type: text/plain; charset=utf-8'); 
?> 

および/または出力HTMLで

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

ヘッダーディレクティブでこれを設定することができ、最も品質のテキストエディタには、次が可能になりますファイルを保存するときに文字コードを指定します。 (Macの場合は例えばWordWrangler)

XMLファイルは、ISO-8859に実際にある場合、あなたはそれを読んでUTF-8に変換するutf8_encode()を使用することができます。

An in-depth discussion of PHP and character encoding

+0

ちょっと、私はxml-feedが最初の行にそれを持っていることに気づいていませんでした。私はいつもそれを見ましたが、私はそれが単なる必要なタグであると思っていましたが、それは私たちにはあまり意味がありませんでした。 decezeの答えに対する私のコメントを見てください。それは少し厳しい。 >?xml version = "1.0" encoding = "ISO-8859-1"?> –

+0

あなたが使っているライブラリがわからないと、それは確かに言うことはできませんが、AJAXの呼び出しがISO-8859をUTF -8。そのutf8_encode()関数を使用して、XMLファイルから読み込まれたデータを変換してください。 (そして私の答えが役に立つと分かったら、それをアップヴォートにすることを検討してください) –

+0

私はできません。私はこれらの項目のリストを持っています、私はまたそれをストアと呼ぶことができます。私はまた、12人の担当者:(笑 –

1
+0

それはutf-8メタタグの問題でしたが、誰かが知っているべきであるか奇妙なものです。 ストアは、データベース/ xmlからのページロード時にその情報を取得し、htmlを出力します。カートはdatabase/xmlからこの同じ正確な情報を取得しますが、ajaxではなくonページの読み込みを行い、出力します。ストアは正しい文字を出力しませんが、カートは実行しますが、いずれも宣言された文字セットはありません。 –

関連する問題