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.php
MySQL の文字設定を使用して 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']
たが、出力されませんでした。
ティモ