質問

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_50 DEFAULT CHARACTER SET utf8 COLLATE utf8_binをphpMyAdminで試してutf8_general_ciから試してみましたが、違いはありませんでした。

役に立ちましたか?

解決

ここでやるべきことがいくつかあります。あなたの問題を正しく理解しているとは思いませんが、もしそうなら、PHP関数 utf8_encode で対処できると思いますおよび utf8_decode

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

また、必要に応じて htmlentities を調べます。

他のヒント

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

header("Content-Type: text/html; charset=utf-8");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top