Проблемы с кодировкой в MySQL 5

Статус
В этой теме нельзя размещать новые ответы.
У меня тоже была проблема с кодировкой в MySQL 5.
Решил проблему через MyAdmin. Оказалось что все таблицы были в кодировке latin1_swedish_ci, хотя при создании таблиц я указывал вин1251.
Пришлось вручную все таблицы перебивать в вин и все получилось!
 
Тоже была проблема с кодировкой, слил базу с помощью скрипта Sypex Dumper Для просмотра ссылки Войди или Зарегистрируйся и через него залил туда где mysql5, все заработало. С помощью PhpMyAdmin ничего не получалось.
 
1. Нужно проверять кодировку всех таблиц
2. в файле includes/database/mysql.php
ищем
Код:
function db_connect($host,$user,$pass) //create connection
{
	$r = mysql_connect($host,$user,$pass);
	if(preg_match('/^5\./',mysql_get_server_info($r)))db_query('SET SESSION sql_mode=0');
	return $r;	
	
}
Меняем на
Код:
function db_connect($host,$user,$pass) //create connection
{
 $r = mysql_connect($host,$user,$pass);
    if(preg_match('/^5\./',mysql_get_server_info($r)))
        db_query('SET SESSION sql_mode=0');
    mysql_query("SET NAMES cp1251") or die("Invalid query: " 
.mysql_error());
    return $r;
}
У меня проблема решилась таким образом.:yahoo:
 
У всех таблиц и у всех филдоф есть codepage. наверно latin1_swedish_ci

вот скрипт

Код:
<?php
 
// this script will output the queries need to change all fields/tables to a different collation
// it is HIGHLY suggested you take a MySQL dump prior to running any of the generated
// this code is provided as is and without any warranty
 
die("Make a backup of your MySQL database then remove this line");
 
set_time_limit(0);
 
// collation you want to change:
$convert_from = 'latin1_swedish_ci';
 
// collation you want to change it to:
$convert_to   = 'utf8_general_ci';
 
// character set of new collation:
$character_set= 'utf8';
 
$show_alter_table = true;
$show_alter_field = true;
 
// DB login information
$username = 'user';
$password = 'password';
$database = 'databse';
$host     = 'localhost';
 
mysql_connect($host, $username, $password);
mysql_select_db($database);
 
$rs_tables = mysql_query(" SHOW TABLES ") or die(mysql_error());
 
print '<pre>';
while ($row_tables = mysql_fetch_row($rs_tables)) {
    $table = mysql_real_escape_string($row_tables[0]);
    
    // Alter table collation
    // ALTER TABLE `account` DEFAULT CHARACTER SET utf8
    if ($show_alter_table) {
        echo("ALTER TABLE `$table` DEFAULT CHARACTER SET $character_set;\r\n");
    }
 
    $rs = mysql_query(" SHOW FULL FIELDS FROM `$table` ") or die(mysql_error());
    while ($row=mysql_fetch_assoc($rs)) {
        
        if ($row['Collation']!=$convert_from)
            continue;
 
        // Is the field allowed to be null?
        if ($row['Null']=='YES') {
            $nullable = ' NULL ';
        } else {
            $nullable = ' NOT NULL';
        }
 
        // Does the field default to null, a string, or nothing?
        if ($row['Default']==NULL) {
            $default = " DEFAULT NULL";
        } else if ($row['Default']!='') {
            $default = " DEFAULT '".mysql_real_escape_string($row['Default'])."'";
        } else {
            $default = '';
        }
 
        // Alter field collation:
        // ALTER TABLE `account` CHANGE `email` `email` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
        if ($show_alter_field) {
            $field = mysql_real_escape_string($row['Field']);
            //echo "ALTER TABLE `$table` CHANGE `$field` `$field` $row[Type] CHARACTER SET $character_set COLLATE $convert_to $nullable $default; \r\n";
            echo "ALTER TABLE `$table` CHANGE `$field` `$field` $row[Type] CHARACTER SET $character_set COLLATE $convert_to; \r\n";
        }
    }
}
 
?>

что с ним сделать?

Добавлено через 9 минут
Помгите пожалуйста
та же проблема

Есть бекап mysql в нем русский нечитаемый. таблицы в latin1
доступа к старому хостингу уже нет
что делать? я в шоке
 
косяк с кодировкой

в админ/модули/оплата последний модуль в SSP(после Яндекс.Деньги ЦПП )вылез кракозябрами.подскажите хоть где этот модуль-даже название не могу прочитать- и кодировку браузера менял только в исходном коде видно "admin.php?dpt=modules&amp;sub=payment&amp;install=27">
а остальное пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
где этот модуль в public_html/modules/payment:(
 
принудительная кодировка

у кого глобальные проблемы с кодировкой старой базы на новом месте - может принудительно сказать mysql в каком формате база. Например, если использовалась КОИ-8U, то:

./includes/database/mysql.php

function db_connect($host,$user,$pass) //create connection
{
$r = mysql_connect($host,$user,$pass);
if(preg_match('/^5\./',mysql_get_server_info($r))) db_query('SET SESSION sql_mode=0');
db_query('set names koi8u');
return $r;
}
 
Блин, я не совсем тупой,но так и не понял, что с кодировкой. Так и придется английскую версию делать?:nezn:
 
помогите, снова проблема с кодировкой причем в админке все нормально а пользовательской части абра кадабра.
Раньше помогал вариант от RAKа но сейчас ничего понять немогу в базе стоит 1251 сравнение все нормально, вчем может быть проблема в пользовательской части. Помогите пожалуйста.
 
Тоже проблема

Уважаемые, вот такая проблема, не уверен что в связи с майсикьюэль... но решил обратиться к вам с просьбой помочь. Весь родной текст магазина на русском выводиться корректно, а вот то что написано в шаблоне... кракозябры, подскажите как это исправить пожалуйста! Вот пример кракозябр вместо курс валют написано РљСѓСЂСЃ валют
1$: 8 (Д°н®©, 8.03 (б°* ⦧ О„С©.
 
Очень надо решить эту проблему! Помогите пожалуйста! Почему слетает кодировка в шаблоне и появляются кракозябры?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху