1

CodeIgniter と MySQL を使用しています。次のメッセージが表示されます。

文字セット iso 8859-15 を初期化できません (パス: /usr/share/mysql/charsets/)

ホストされたサーバーを使用していますが、usr ディレクトリにアクセスできません。これは、charset に関する CI mysql_driver クラスの関数です。

function db_set_charset($charset, $collation) {
  if (!isset($this->use_set_names)) {
    // mysql_set_charset() requires PHP >= 5.2.3 and MySQL >= 5.0.7, use SET NAMES as fallback
    $this->use_set_names = (version_compare(PHP_VERSION, '5.2.3', '>=') && version_compare(mysql_get_server_info(), '5.0.7', '>=')) ? FALSE : TRUE;
  }
  if ($this->use_set_names === TRUE) {
    return @mysql_query("SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'", $this->conn_id);
  } else {
    return @mysql_set_charset($charset, $this->conn_id);
  }
}

CI 構成には UTF-8 設定があります。

$config['charset'] = 'utf-8';

私のメモ帳++はそれぞれANSIにUTF-8に設定されています。グローバル MySQL 設定を UTF-8 に変更するにはどうすればよいですか? config.phpMySQL の文字設定を使用して Web サーバー設定にを追加する必要がありますか? のようにcharacter_set_database="utf-8"

iso-8859 の通知が表示されるのはなぜですか? 私にとっては iso-8859 が良いです。ドイツ語の特殊文字を表示できますが、UTF は表示できません。

私は解決策を持っています:CIはconig.phpで次のように設定されています $config['charset'] = 'utf-8';

印刷前に使用する場合utf8_encode、char設定をUTF 8にハードコーディングすると機能します。この機能を使用しないと、間違った文字が表示されます。構成設定にUTF-8があるため、関数を使用する必要がある理由がわかりません。確認のために印刷しようとしまし$config['charset']たが、出力されませんでした。

ティモ

4

0 に答える 0