2017-01-30 15 views
-1

PHPとMySQLでメッセージングシステムを作成していますが、特定の文字が入力されたときに問題が発生しています。特にポンド記号(£)。ポンド記号のUTF-8エンコーディングPHP

ユーザーが自分のメッセージを書き込む形式は、次の機能をPHPスクリプトに掲載されます。そして、

$message = htmlspecialchars($message, ENT_QUOTES); 
$message = utf8_encode($message); 

$messageは、それがテキスト列に格納されたデータベースにINSERT編です。

しかし、シャープ記号を入力すると、ライブサーバー上のデータはデータベースには表示されませんが、ローカルホスト上(MAMPを使用)には£がデータベースに表示されます。

誰も何が起こっているのか知っていますか?そして、££としてエンコードする方法があるので、私の問題を解決するかもしれないと感じています。

+0

[すべてのプログラマーが、エンコーディングと文字セットについて熟知していることがありますか?](http://kunststube.net/encoding/)、[WebアプリケーションでUnicodeフロントを処理する](http: //kunststube.net/frontback/) – deceze

+0

あなたはMojibakeを持っています。原因と修正についてはこちらをご覧ください:http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored –

答えて

1

データベースエンコーディングがUTF-8でない場合、またはアプリケーションがUTF-8としてデータベースからデータを取得しない場合、データベースに格納されたデータは正しくレンダリングされません.dbエンコーディングを確認してください。問題はあなたのPHPページにこれを入れた

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

関連する問題