1

だからみんな私は解決するのに私のペースを取っているひどい問題に直面しています.

wysiwygエディターから収集されたデータをエンコードしてmysqlデータベースに送信する関数(テーブルの文字セットはUTF-8です)と、逆の方法(データベースからwysiwygへ)を行う関数の2つの関数を作成しました。下記参照。

function displayTextWithTags($textToBeDisplayed) {
    return html_entity_decode(html_entity_decode($textToBeDisplayed));
}

function sendTextToDatabase($text){
    return trim(htmlentities(htmlentities($text, ENT_QUOTES)));
}

PHP 5.4.4を実行している開発サーバーでは非常にうまく機能しますが、アプリケーションをクライアントのサーバー(php 5.2.7を実行)にアップロードすると、デコードが正しく機能しません...

たとえば、&\Eacute;&\eacute;(コードを読めるように \ を配置した) をデータベースにÉé送信すると、開発サーバーで取得したときに が取得�?éされ、クライアントのサーバーから取得したときに が取得されます。

私は自分の問題の答えを見つけるために何時間もスタックを潜んでいましたが、成功しなかったので、助けを求めています。

4

3 に答える 3

0

以前にこの問題がありましたが、ADODB データベース ラッパーを使用しています。そのためには、これを使用する必要がありました:

 $db->EXECUTE("set names 'utf8'");

データベース ラッパー クラスを使用しているかどうかはわかりませんが、基本的にはスキーマ名を utf8 に設定する必要があります。ここに例があります。

于 2012-10-19T15:09:50.837 に答える
0

ここで説明が必要だと思います。「取り戻す」とはどういう意味ですか?「ブラウザに表示」という意味だと思いますが、まず、http ヘッダーを調べて、クライアントの Web サーバーが提供する文字エンコーディングを確認しましたか? ISO-8859-1 として出力される場合があります。

ちなみに、エンティティのデコードとエンコードを 2 回実行しているのはなぜですか?

于 2012-10-19T15:14:53.780 に答える