- Автор темы
- #1
Привет
Знаю, что проблема старая, да и я сам кажется пару раз этот вопрос задавал и что самое странное, что всё было ОК.
Пока в очередной раз не сталкнулся с очередным сайтом с той же проблемой.
Сейчас коротко что к чему.
Сайт в юникоде кодировка -UTF8
Зная, как бороться с этой проблемой изначально поставил все настройки как надо.
1.System Preferences -General Configuration - UTF-8
2. CP Home › Admin › Weblog Administration › Weblog Management › Edit Weblog - XML Character Encoding - UTF-8
3, db/db.mysql.php
in Connect to database
4. текст строго в юникоде вводиться
---------------
в админке всё ок, но в базе (и в пхпадмин) и если смотрю файл сурс - идет текск такого рода
пролистал мейн форум - сделал всё когда то, кто то кому советовали (имею ввиду дельные советы )
1. база строга -в Collation - utf8_general_ci
2. переконвертировал всю базу через этот скрипт
не помогло, под конец весь текст из базы ручную перевёл в юникод прямо в пхпадмине.
на вид всё ок, но когда добавляю ню entry - текст опять такого рода
Знаю, что проблема старая, да и я сам кажется пару раз этот вопрос задавал и что самое странное, что всё было ОК.
Пока в очередной раз не сталкнулся с очередным сайтом с той же проблемой.
Сейчас коротко что к чему.
Сайт в юникоде кодировка -UTF8
Зная, как бороться с этой проблемой изначально поставил все настройки как надо.
1.System Preferences -General Configuration - UTF-8
2. CP Home › Admin › Weblog Administration › Weblog Management › Edit Weblog - XML Character Encoding - UTF-8
3, db/db.mysql.php
in Connect to database
Код:
/** ---------------------------------------
/** Connect to database
/** ---------------------------------------*/
function db_connect($select_db = TRUE)
{
$this->conn_id = ($this->conntype == 0) ?
@mysql_connect ($this->hostname, $this->username, $this->password):
@mysql_pconnect($this->hostname, $this->username, $this->password);
if ( ! $this->conn_id)
{
return FALSE;
}
if ($select_db == TRUE)
{
if ( ! $this->select_db())
{
return FALSE;
}
}
$this->query("SET NAMES 'utf8'");
$this->query("SET CHARACTER SET utf8");
$this->query("SET COLLATION_CONNECTION=utf8_general_ci");
return TRUE;
}
/* END */
---------------
в админке всё ок, но в базе (и в пхпадмин) и если смотрю файл сурс - идет текск такого рода
------------& laquo; & laquo; & # 1358;& # 1377; & # 1404; &# 1387;ր только слитно
пролистал мейн форум - сделал всё когда то, кто то кому советовали (имею ввиду дельные советы )
1. база строга -в Collation - utf8_general_ci
2. переконвертировал всю базу через этот скрипт
Код:
<?php
// Fill in your configuration below
$db_server = 'localhost';
$db_user = '**';
$db_password = '**';
$db_name = '***';
// Do not change anything below this
// set_time_limit(0);
header('Content-type: text/plain');
$connection = mysql_connect($db_server, $db_user, $db_password) or die( mysql_error() );
$db = mysql_select_db($db_name) or die( mysql_error() );
$sql = 'SHOW TABLES';
if ( !($result = mysql_query($sql)) )
{
print '<span style="color: red;">SQL Error: <br>' . mysql_error() . "</span>\n";
}
// Loop through all tables in this database
while ( $row = mysql_fetch_row($result) )
{
$table = mysql_real_escape_string($row[0]);
$sql2 = "ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
if ( !($result2 = mysql_query($sql2)) )
{
print '<span style="color: red;">SQL Error: <br>' . mysql_error() . "</span>\n";
break;
}
print "$table changed to UTF-8 successfully.<br>\n";
// Now loop through all the fields within this table
$sql3 = "SHOW COLUMNS FROM $table";
if ( !($result3 = mysql_query($sql3)) )
{
print '<span style="color: red;">SQL Error: <br>' . mysql_error() . "</span>\n";
break;
}
while ( $row3 = mysql_fetch_row($result3) )
{
$field_name = $row3[0];
$field_type = $row3[1];
// Change text based fields
$skipped_field_types = array('char', 'text', 'blob', 'enum', 'set');
foreach ( $skipped_field_types as $type )
{
if ( strpos($field_type, $type) !== false )
{
$sql4 = "ALTER TABLE $table CHANGE `$field_name` `$field_name` $field_type CHARACTER SET utf8 COLLATE utf8_bin";
if ( !($result4 = mysql_query($sql4)) )
{
print '<span style="color: red;">SQL Error: <br>' . mysql_error() . "</span>\n";
break 3;
}
print "---- $field_name changed to UTF-8 successfully.<br>\n";
}
}
}
print "<hr>\n";
}
mysql_close($connection);
?>
на вид всё ок, но когда добавляю ню entry - текст опять такого рода
подскажите, что я не правильно делаю, или что ещё я не сделал ?& laquo; & laquo; & # 1358;& # 1377; & # 1404; &# 1387;ր только слитно