テキストエリアのあるフォームがあります。ユーザーは、データベースに保存されているテキスト ブロックを入力します。
ユーザーは、スマート クォーテーションやエムダッシュを含むテキストを Word から貼り付けることがあります。これらの文字は、データベースでは「、」、「、、」として表示されます。</p>
スマート クォートを通常のクォートに変換し、emdash を通常のダッシュに変換するには、入力文字列に対してどの関数を呼び出す必要がありますか?
私はPHPで働いています。
更新: これまでに素晴らしい回答をありがとうございました。エンコードに関する Joel のサイトのページは非常に有益です: http://www.joelonsoftware.com/articles/Unicode.html
私の環境に関するいくつかのメモ:
MySQL データベースは UTF-8 エンコーディングを使用しています。同様に、コンテンツを表示する HTML ページは、メタ コンテンツ タイプを明示的に設定することにより、UTF-8 (Update:) を使用しています。
これらのページでは、スマート クォートと em ダッシュがクエスチョン マーク付きのひし形で表示されます。
解決:
返信ありがとうございます。解決策は次の 2 つでした。
- データベースと HTML ファイルが明示的に UTF-8 エンコーディングを使用するように設定されていることを確認してください。
htmlspecialchars()
の代わりに 使用しhtmlentities()
ます。