何それは、一般的に意味することは、ワードプレスは、自身の他のバージョン(「スマート引用符」で特定の文字を置換している間あなたは、UTF-8以外のものとしてページを提供しているということです)をUTF-8で使用します。また、奇妙なエンコーディングでテキストをコピーしてポストに貼り付けるときにも起こります。 Microsoft Wordは、すべての見積もりを独自のエンコーディングで縮尺に変換するのが好きなので、その共通ソースです。コピーして貼り付けた場合は、最初に書式設定していない場所(メモ帳は良い)に貼り付けて、そこから再コピーしてみてください。それ以外の場合は、WordPressを修正する必要があります。それはあなたがここに欲しいと思うesc_htmlではないことに注意してください - それはあなたに別の問題のセットを与えるだけです。
ここには2つのアプローチがあります:最初の、そして最も良いのは、適切なエンコーディングでページを提供していることを確認することです。ブラウザのデバッグ機能(「ページ情報」、またはFirebugまたはWeb Inspectorのネットワークパネル)を使用して確認するか、W3 validatorでページを実行してオンラインで簡単に行うことができます。結果ページのエンコーディングが表示されます。 UTF-8でない場合、問題があります。おそらくページの上に表示されるように、自分でページを生成しているのであれば、PHPで直接修正することができます:
<?php header("Content-type: text/html; charset=UTF-8");?>
WordPressのライブラリコードは通常、それ自体で動作しますので、うまく動作しない可能性があります。一部のサーバーは、その方法をオーバーライドできないように設定されています。この場合、使用するサーバーによって構成が異なります。 Apacheの場合、それを行う方法の1つとして、AddDefaultCharsetのドキュメントを参照してください。 サーバーが設定を上書きしないように設定されているか、そのエンコーディングを望んでいないように設定されている可能性があります。この場合、オプション2が必要です。
最初のオプションが利用できない場合、またはそうしない場合は、別のオプションがあります。 WordPressにこれらの置き換えを行わないよう強制することができます。ワードプレスのwptexturize()関数は、その変換を行います。これはthe_excerptのフィルタチェーンの一部として適用されます。あなたはこのPHPコードでフィルタチェーンから削除することができます:
<?php remove_filter("the_excerpt", "wptexturize"); ?>
あなたのテーマや基本的なプラグインへのfunctions.phpにそれを置くことができますが、あなたのためにそれを行う可能なプラグインもあります。wpuntexturizeどこでもスマートな文字変換を無効にします。それは物事を少し醜いものに見せかけますが、すべてがうまくいくはずです。
WordPressのフィルタシステムを使用して、問題の文字に対して小さな逆変換を適用することもできます。このような何か:プラグインや彼らのプレーンASCII同等物にスマート引用符やダッシュをuntransformますのfunctions.phpで
function local_fix_quotes($in) {
$in = str_replace("“", '"', $in);
$in = str_replace("”", '"', $in);
$in = str_replace("’", "'", $in);
$in = str_replace("‘", "'", $in);
$in = str_replace("–", "-", $in);
$in = str_replace("…", "...", $in);
$in = str_replace("\xC2\xA0",' ',$in);
$in = str_replace("\xE2\x80\x99","'",$in);
$in = str_replace("\xE2\x80\x9C",'"',$in);
$in = str_replace("\xE2\x80\x9D",'"',$in);
$in = str_replace("\xE2\x80\x93",'-',$in);
return $in;
}
add_filter("the_excerpt", "local_fix_quotes");
。
これらのコードオプションは、WordPressのライブラリコードをインクルードした後であれば、WordPress以外で生成することができます。そうするときは、他のコード出力の前に、ページの上部にwp-blog-headerを置く必要があります。ページがすでに出力を開始している場合、WordPressはすでに送信されているエンコーディングを変更することはできません。 WP-ブログヘッダーがページの上部に必要とされなかった場合は、
<?php
define('WP_USE_THEMES', false);
require_once('./wp-blog-header.php');
remove_filter("the_excerpt", "wptexturize");
?>
<html>
必ずそれがそこに最初のmakeと問題が解決するかどうかを参照してください。ページの上部には、次のようになります。あなたのページが意図的に別のエンコーディングを持っていればそれほど重要ではなく、文字の置換を無関係にすることはできません。 WordPressで生成されたページでは、プラグインのアプローチがその場合に最適です。
私はダンスキャップを今すぐ持っていきます。私はちょうどJSONオブジェクトのWordPress PHP文字列をエスケープする方法を見つけようと1時間を費やし、PHPでエスケープする必要があることを認識しました。 これで私はおそらく私に恋人のビンへの旅行を救ったでしょう。 – Imperative