1

このデンマーク語の文字列から疑問符を削除したいと思います。

...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...

utf8_encode()以下を返すものを試しました:

...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...

最初の文字列は、Web サービスの XML で取得した応答です。私の側からこれを修正する方法はありますか?

4

5 に答える 5

4

XML ファイルの属性を読み取り、encodingそのエンコーディングを使用して、Web サイトで使用されているエンコーディングに変換します。encoding 属性がない場合、デフォルトは UTF-8 です。手順で得られたエンコードが、使用している Web サイトと同じエンコードである場合、変換は必要ありません。

$encoding_read_from_xml = "ISO-8859-1";
$encoding_my_website_uses = "UTF-8";
$xml_content = mb_convert_encoding($xml_content, $encoding_my_website_uses, $encoding_read_from_xml);
于 2013-04-05T12:36:49.403 に答える
4

この種の問題を回避する最善の方法は、Web サイト全体に UTF-8 を使用することです。つまり、次のことを意味します。

  1. PHP ファイル自体を UTF-8 としてエンコードします。これは、エディター/IDE によって行われます。
  2. <meta charset="UTF-8">HTML5などのメタ タグをページに追加します。
  3. おそらく最も重要な点は、クエリを作成する前に、データベース接続オブジェクトの文字セットを UTF-8 に設定することです$mysqli->set_charset('utf8')

これらの点に従えば、異なるエンコーディング間でデータを変換する必要はありません。この小さな記事UTF-8 for PHP and MySQL で、より多くの情報と例を見つけることができます。

于 2013-04-05T13:59:31.223 に答える
2

入力出力のエンコーディングを確認してください。ほとんどの場合、両方に UTF-8 を選択するのが最善の方法です。

入力が ISO-8859-1 の場合は、 を使用utf8_encode()して UTF-8 にエンコードします。すでに UTF-8 の場合、utf8_encode()再度呼び出すと問題が発生します。

出力を UTF-8 として指定するにはheader('Content-type: text/html; charset=utf-8');、PHP または<meta charset="UTF-8" />HTML で使用します。

于 2013-04-04T15:11:58.890 に答える
1

以下に示すようにヘッダーを調整してみましたか?、同じ問題がありましたが、これで問題が解決しました

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
于 2013-04-04T15:07:42.493 に答える