2012-03-13 20 views
0

でテキストエリアの内容にアクセスするとき、私は以下のテキストを持つ「海の中心部に特殊文字のphp

フィルブリックを、入力した場合、私は私のフォームので

上のテキストエリアの入力から特殊文字を取得しています: Whaleship Essexの悲劇は、メルヴィルの 難破船の現実的なインスピレーションを語り、軽蔑的に彼のエデュケーションを身に着けた。

私はPHPでアクセスすると次のようになります。その“In海のハート

フィルブリック、: WhaleshipEssexâ€の悲劇が Melville’sの難破船のための現実のインスピレーションを振り返った、軽く彼の博学を身に着けています。

テキストにアクセスする前に以下を試しましたが、置き換えられません。これらの特殊文字は、 コード内に貼り付けられたコピーや、それ以外のものがコピーされても一致しませんか?

$string = htmlspecialchars($_POST["t"]) ; 
$string = html_entity_decode($string, ENT_QUOTES, "UTF-8"); 
$string = str_replace('“', "\"", $string); 
$string = str_replace('’', "'", $string); 

答えて

1

あなたが見ているものに間違いはないかもしれません。 $ _POSTをhtmlentitiesの修正などで修正する必要はありません。 barebonesブラウザの出力を見ている可能性があります。

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

あなたが print_r($_POST); die;ようなもので、それを吐き出しことによって、これをデバッグしている場合は

、どこかその上あなたのページにあなたがUTF-8にあなたの文字エンコーディングを設定するメタラインを持っていることを確認してください

これは、おそらくどこかから貼り付けられたスマート文字が画面上で正しくレンダリングされることを保証します。

完全に無関係:優れた本、BTW。彼らの骨の積み重ねを見捨てる船乗りたちが、初めのシーンを愛しています。

+0

魅力的な作品!どうもありがとう!!! – vaichidrewar

1

あなたが実際に通常の単一引用符と二重引用符を持っていないが、いくつかの空想のUnicode版: &#1 x201c; &#x201d &#x2019

お試しutf8_decodeどんなエンコードを使用しているのですか?Windows-1250

+0

どのエンコーディングが使用されているかを調べるにはどうすればよいですか?私はutf8_decodeを作成しました:Philbrick、誰ですか?海の中心に:鯨のエセックスの悲劇?メルヴィルの難破船の現実のインスピレーションを語り、軽蔑的に彼のエデュケーションを身に着けた。だから、出力の特殊文字が異なっていますか? – vaichidrewar

+0

echo "エンコーディングスキームは:"です。 mb_detect_encoding($ string); UTF-8を製作しました – vaichidrewar