0

ckeditor を使用するバックエンドを使用しています。config.js には何も変更がないため、アクセント付きのフランス語の文字が自動的に html エンティティに変換されます。

é と入力して ckeditor のソースを確認すると、é

このフィールドが対応するデータベース テーブルは utf8_general_ci です。

ページの文字セットは次のとおりです。<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

したがって、フロントエンドをロードすると、次のように表示されます。

�</p>

é を ckeditor ソースに入力すると、html エンティティに変換されないため、ページに正しく表示されます。

config.entities = false; によって ckeditor config.js のカバーをオフにすると、次のようになります。

次に、é を入力して ckeditor のソースを確認すると、é のままなので、これでうまくいくと思いました。

ただし、フロントエンドをロードすると、次のエラーが表示されます。

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\site\includes\functions\clean_code.php(162) : eval()'d code on line 34

ここに clean_code.php コードを貼り付けることができますが、サイト全体で変更しないことが重要だと思います。だから私はちょっと立ち往生しています。私に何ができる?

編集:

わかりましたので、次の方法で説明をエコーし​​ていた変更まで追跡しました。

  echo stripslashes( tep_sanitize_html( html_entity_decode( stripslashes( $product_info[ 'products_description' ] ) ) ) );

これを行うバニラの方法は次のとおりです。

<?php echo stripslashes($product_info['products_description']); ?>

したがって、このアドオンの開発者がサニタイズ html メソッドとデコードを使用することにした理由はわかりません。ただし、それらを削除して元の方法に戻すと機能します。

4

1 に答える 1

0

これらは2つの質問なので、2つの答え:

� を表示する問題に対する唯一の論理的な答えは、どこかでこれを UTF-8 として正しく保存しておらず、別のものに変換されたことです。

2 番目の問題 (eval() されたコードの致命的なエラー)。このエラーを引き起こしているコードを投稿する必要があり、リモートで重要なことには eval を使用しないことをお勧めします。特に、あなたがしているように見える動的な eval() コードではありません。

于 2013-07-09T14:21:02.860 に答える