2010-12-07 17 views
38

私はポンド記号を(PHPから)HTMLで表示しようとしていますが、私が得るのは疑問符の付いた記号だけです。ポンド記号(£)をHTMLで表示できないのはなぜですか?

私が試したことは次のとおりです。 PHPで

:HTMLで

header('Content-type: text/html; charset=utf-8'); 

、headタグでこれを置く:

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

私はそれを変換javascript関数使用してそれを表示してみました:

&amp;#65533; 

私は自分が何をしているのか分かっていれば助けになると思うが、私はこの質問をしているのだと思う。

+22

最後の行だけ+1 –

+0

コードを表示してください。 – Moshe

+6

'£'を試しましたか? – sje397

答えて

14

推測される推測:UTF-8でエンコードされたページにISO-8859-1でエンコードされたシャープ記号があります。

データが正しいエンコーディングであることを確認してください。すべて正常に動作します。

10

&pound;を表示しようとしましたか?

Hereは圧倒的なリストです。

+2

これはおそらくこれを修正するものですが、問題の根本には触れません代わりにPekkaの答えをお勧めします。 –

+0

@ Andreas Bonini:合意しました:-) – nc3b

+0

£でも動作しますが、なぜ動作していないのかはわかります。私はそれが重要かどうかわからないが、私はJavaScript(divタグのinnerHTMLプロパティを設定して)を介してこれをやっている –

3

文字を直接埋め込むのではなく、&pound;または&#163;を試してみることもできます。それを直接埋め込むと、エディタがファイルをISO-8859-1に保存するエンコードの問題に遭遇する可能性が高くなりますが、その逆もUTF-8と解釈されます。

それを直接埋め込む場合は、ファイルを実際にUTF-8として保存し、Content-Typeヘッダーの場合と同じようにエンコードを設定してください。ヘッダーが存在していて、ファイルがWebサーバーによってトランスコードされていないことをサーバーから取得したときは、必ず確認してください。

2

またはその他のコード同等物のためには、試してみてください。

&#163; 
&pound; 
1

あなたはUTF-8エンコーディングであなたのPHPスクリプトファイルを保存して、HTMLで<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />を残しておく必要があります。

テキストエディタの場合は、ファイルの実際のエンコーディングを検出して表示することができます(エディタの右下隅にあります)。また、変換することもできます。

16

&#163;を使用してください。私は同じ問題を抱えていたとjQueryを使用して、それを解決:あなたはこれを試してみて、それが動作しない場合

$(this).text('&amp;#163;'); 
  • 、ちょうどjQueryのメソッドを変更、
$(this).html('&amp;#163;'); 
  • このすべての文脈で常に働きます...
+0

編集のためのおかげで、私は時間と非常に高速に対してそれを狂っている...重要なことは、アイデアが来る – Rak90

11

第1位:ポンド記号はutf8エンコーディングで "特別な"文字です(iso-8859-1(またはiso-8859-15)ファイルに£$を保存してみてください) )

2番目:ファイルからutf8にエンコードを変更します。 それを行う方法はたくさんあります。 メモ帳とメモ帳++はすばらしい贈り物です。

3番目:use ob_start(); (PHPで)エンコーディングが間違っているような奇妙なエンコーディングエラーが発生する場合は、出力を作成する前にしてください。 とはい、これで解決します! ページがWindows-1252(ANSI)、ASCII、iso-8859-1(5)でエンコードされ、utf8に他のすべてがある場合、この種のエラーが発生します。 これはひどいエラーであり、session_start()のような変なものを引き起こす可能性があります。働いていない。

第4回:他のPHPソリューション:

utf8_encode('£'); 
htmlentities('£'); 
echo '&amp;pound;'; 

第5回:JavaScriptのソリューション:

document.getElementById('id_goes_here').innerText.replace('£','&amp;pound;'); 
document.getElementById('id_goes_here').innerText.replace('£',"\u00A3"); 
$(this).html().replace('£','&amp;pound;'); //jquery 
$(this).html().replace('£',"\u00A3"); //jquery 
String.fromCharCode('163'); 

それが壊れてエンコードされたコードポイントを修復しますので、あなたは、£を送らなければなりません。 これらの解決策を避けてください。 PHPを使用してください! これらのソリューションは、エラーを修正する方法と、エンコードされたcharを作成するための最後の方法のみを示しています。

1

これはすべてのクロム、IE、Firefoxで機能します。データベースで

>テーブル>フィールド型シンボル列を設定する例.FOR TO varchar(2) utf8_bin PHPコード:また

$symbol = '£'; 
echo mb_convert_encoding($symbol, 'UTF-8', 'HTML-ENTITIES'); 
or 
html_entity_decode($symbol, ENT_NOQUOTES, 'UTF-8'); 

そして必ずエンコード= "UTF-8"

にHTMLやXMLエンコーディングを設定してください

注:は、データベース、文書型とPHPのコードはすべて同じエンコーディングを持っていることを確認する必要があり

よりよい解決策はを使っだろうどのように今までに

関連する問題