0

php/AJAX を使用して Web ページに .txt ファイルのコンテンツを出力しようとしています。これは、特殊文字を含まない .txt ファイルに対しては正常に機能します。ただし、.txt ファイルに文字のアクセントなどの文字が含まれている場合 (たとえば、è など)、ファイルの内容に対する AJAX 要求は null を返します。

私が実行したテストによると、Word文書から.txtファイルの内容をコピーして貼り付けることが問題の原因だと思います。

たとえば、Word 文書からアポストロフィをコピーし、メモ帳を使用して .txt に貼り付けると、アポストロフィがメモ帳の .txt ファイルに直接入力された場合とは異なって表示されます。

私のクライアントは現在、サーバー上の特定のフォルダーに .txt ファイルをアップロードし、Word からコピーして貼り付けることでコンテンツを作成しています。これらの「コピーして貼り付けた」特殊文字を読み取ることができるように、これを回避する方法はありますか?

フォーマットの違いの例:

単語からコピー- Dave's

直接入力- Dave's

アポストロフィーの違いがわかりますか?

4

3 に答える 3

0

これらはスマートクオートと呼ばれます。ここにあるガイドに従って、Word のオプションでそれらを変更できます。これは、ソースで意図した出力を定義するため、最適なオプションです。これが不可能な場合、つまり、一度に何千もの Word ファイルがある場合は、後処理を行う方法があります。これは、文字の HTML エンティティを検索し、検索と置換機能を使用することで実現できます。PHP を使用して、関数を使用してテキスト ファイルを開き、str_replace()配列などで定義できる不要な/表示できない文字をすべて見つけて置き換えることをお勧めします。

于 2013-04-29T13:44:06.593 に答える
0

htmlspecialchars()エコーする前に、テキスト ファイルを含む変数に対して実行できますか?

これにより、特殊文字が HTML エンティティに変換され、Web ページで表示できるようになります。

于 2013-04-29T13:40:50.073 に答える
0

わかった))

  1. do not use notepad, ever
  2. save all the files with the utf8 encoding

それだけです、問題は解決しました

于 2013-04-29T13:43:25.637 に答える