1

私はphpで構築された小さなajaxアプリケーションを持っています。

phpMyAdminを使用して、mysqlデータベースをutf-8に設定し、utf-8データを含むテキストファイルをインポートしました。

これは、my.cnfファイルにcharacter-set-server=utf8とdefault-character-set=utf8を追加した後、easyphpを使用するWindowsマシンで正常に機能しました。

これを構成ファイルにアクセスできない本番サーバーに移動しようとしましたが、ウムラウトなどの文字が表示されません。

これを修正するために(構成ファイルではなく)phpコードで設定できるもの、またはmysqlに与えることができるコマンドはありますか?

ALTER DATABASE vweb_50DEFAULT CHARACTER SET utf8 COLLATE utf8_bin with phpMyAdminを試して、utf8_general_ciから試してみましたが、違いはありませんでした。

4

2 に答える 2

1

ここで行うべきことがいくつかあり、問題を正しく理解しているかどうかはわかりませんが、理解していれば、そのほとんどはPHP関数utf8_encodeおよびutf8_decodeで対処できると思います。

  • utf8_encode
    • ISO-8859-1文字列をUTF-8にエンコードします
  • utf8_decode
    • この関数は、UTF-8でエンコードされていると想定されるデータをISO-8859-1にデコードします。

また、必要に応じてhtmlentitiesを調べてください。

于 2009-01-15T14:59:00.817 に答える
0

アプリケーション全体でutf-8を使用する場合(これをお勧めします)、utf8_encode/decode関数は必要ありません。ページが提供されるエンコーディングを確認しましたか?おそらく、サーバーはiso-8859-1を文字セットとして送信するように構成されていますが、テスト環境はutf-8を送信します。Content-Typeヘッダーを使用してエンコーディングを設定します。

header("Content-Type: text/html; charset=utf-8");
于 2009-01-15T22:41:29.523 に答える