2009-06-24 7 views
2

私は、XMLファイルからデータを読み込み、AJAX経由でページに戻すPHPスクリプトを用意しています。このスクリプトは、関連するテキスト領域にデータを配置します。 XMLの見出しは次のようになります英国ポンド記号(£)が正しく表示されるようにするにはどうすればよいですか?

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

::次のように

のContent-Typeページのがある

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE xsl:stylesheet [ 
    <!ENTITY pound "&#163;"> 
]> 
... 

問題は、データがテキストボックスに到着したとき、それは持っているということです文字の前に。

私は、コンテンツタイプをUTF-8に設定するとこの問題は解決されるが、間違っていなければならないという印象を受けました。誰も私がそれを一貫してレンダリングするために使用する必要があるエンコーディングタイプを教えてもらえますか?

答えて

6

いくつかのプログラムまたはプロセスは、任意のステップで、文字がマングドすることができ、その後、正しくそれに対処するために失敗した場合、文字エンコーディングの問題はあります。

だから、あなたが持っている

  1. あるXMLレスポンスfroman XMLファイルを構築し、サーバー上のいくつかのコードを実行しますAJAX呼び出しを行う
  2. をだHTMLページ
  3. がブラウザに戻ってテキストボックスに表示されます。

理想的には、すべてのステップで、UTF-8エンコーディングが必要です。あなたのキャラクターが乱暴になっているプロセスのいくつかの段階にある可能性が高いです。ここで私はあなたのHTML/PHPページが正しいメタタグ

  • は、あなたのHTML/PHPのテキストファイルがUTF-8
  • として保存されていることを確認していることを確認してください

    1. これを追跡するために取ると思い手順です
    2. から読んだあなたのXMLファイルとして保存されていることを確認してくださいUTF-8
    3. ていることを確認しているから読んで、あなたは、両方のは、そのエンコーディングがprolouge <?XMLバージョンに設定した構築レスポンスのXMLファイル= " 1.0 "エンコード= " utf-8 "? >
    4. サーバーのレスポンスヘッダがシンボルが正しく
    3

    戻されている場合は、あなたのことを確認する必要があります参照するには、ブラウザで手動でサービスを呼び出して、UTF-8

  • を送信していることを確認しますAJAXリクエストもUTF-8を返しています。静的ページのContent-Typeの設定は問題ありませんが、Ajax呼び出し時に行われるHTTP転送のContent-Typeエンコーディングには影響しません。

    (他の出力の前に)Ajax結果を返すスクリプトでこのコードを使用してみてください。これはあなたのHTTPレスポンスのContent-Typeを設定します:

    header('Content-Type: text/html; charset=utf-8'); 
    
  • +0

    私がこれを持っているかどうかわかりませんが、私は私のPHPと思います。iniはデフォルトでUTF-8としてページを提供するように設定されています:) – xenon

    関連する問題