Re: Смена кодировки базы в phpMyAdmin
nik
Тогда показывайте что вы используете, иначе понять где ошибка, невозможно.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Смена кодировки базы в phpMyAdmin
nik
Тогда показывайте что вы используете, иначе понять где ошибка, невозможно.
Думаю вы уже поняли, что я только начал поэтому не всегда понимаю а чем вы говорите.Вам нужна web-страница и БД?
nik
Просто объясните что за скрипт используете, это форум какой-то или что-то другое? Если это ваш скрипт, то покажите его.
<?php
$db = mysql_connect("localhost","nik","12345");
mysql_select_db("test2",$db);
$result = mysql_query("SELECT * FROM sotrudniki",$db);
$myrow = mysql_fetch_array($result);
do
{
echo "Сотрудник № - ". $myrow['id']. "<br>";
echo $myrow['name']."<br>";
echo $myrow['lastname']."<br>";
}
while($myrow = mysql_fetch_array($result));
?>
Теперь вместо одних вопросов выдает: ???µ?‚??
???µ?‚??????.
И БД и в таблице выставлено сравнение cp1251_general_ci.
Сразу после функции mysql_connect() добавьте строку:
mysql_query('SET NAMES cp1251');
Либо, при наличии доступа к конфигурационному файлу MySQL (my.ini), пропишите в разделе [mysqld] строку:
init-connect="SET NAMES cp1251"
После добавления строки mysql_query('SET NAMES cp1251'); браузер выдает это:Р?ван и Петр.
Строка init-connect="SET NAMES cp1251" в файле my.ini уже есть.
# The TCP/IP Port the MySQL Server will listen on
port=3306
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
init-connect="SET NAMES cp1251"
nik
У вас страница скрипта в utf8. Сохраните ее в cp1251 (ANSI). Используйте текстовый редактор, который нормально работает с кодировками, например, Notepad++.
nik
У вас страница скрипта в utf8. Сохраните ее в cp1251 (ANSI). Используйте текстовый редактор, который нормально работает с кодировками, например, Notepad++.
Сохранил через редактор Notepad2 браузер выдает тоже самое.Работаю с программой Adobe DreamweaverCS4 но везде стоит кодировка cp1251 в том числе и в браузере.Мне кажется все дело в том что кодировка MySQL сервера выставлена в UTF-8 Unicode (utf8) ведь все эти кракозябры получаются после запроса к БД.Возможно такое?
nik
А как данные в phpMyAdmin отображаются? Там кириллица видна?
Да все на русском.
nik
У пользователя, которым идет подключения должны быть убраны привилегии в разделе "Администрирование" - проверьте.
Я так понял нужно убрать привилегии касаемые администрирования?Чтобы это сделать нужно ли заходить как администратор(root)?
nik
Можно зайти под самим пользователем, или как root.
Добрый день.Сделал теперь в браузере все на русском но в таблице теперь вот это ?????? ?????? ?????????!!!!!!
nik
Что вы сделали?
Вам надо совместить три вещи: кодировка страницы сайта (задается при создании файла и прописывается в метатеге), кодировка соединения с MySQL (устанавливается с помощью запроса SET NAMES), кодировка таблиц в БД (устанавливается при создании таблицы).
Я переустановил phpMyadmin с 3.0.3 на 3.1.3 теперь все работает так как и должно.Спасибо вам за помощь.Все окозалось довольно просто.
nik
Спасибо за то, что отписали о решении проблемы.
Все пользователи третьей ветки phpMyAdmin - обновите скрипт до 3.1.3, в предыдущих версиях была ошибка с установкой кодировки соединения с MySQL, которая привязывалась к выставленному на главной странице сравнению, чего быть не должно.
Доброго всем времени суток! Обращаюсь ко всем кто может помочь. Уже мучаюсь с проблемой 2 месяца, а решить ее не могу. Дело в следующем. Имеем сайт и базу в MySQL, на страничках в IЕ данные отображаются правильно, понадобильсь добавить пару пунктов в базу данных и изменить старые названия, но вот засада, открываю MyAdmin, захожу в базу, а там в полях NAME- ????? ?? ??????. Уже и поседел и полысел, перепробовал все что мог, а кодировки не поддаются, что делать - не знаю. Доступа к файлу my.ini не имею, так как поставщик услуг находится в Лос Анжелесе.
запрос
SHOW GLOBAL VARIABLES LIKE 'char%'
выдал
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/
Текст набран на русском и украинском
Что делать, подскажите пожалуйста!
sashalviv
Решение следует в два этапа: перекодировка данных из крякозябов в кириллицу; установка кодировки соединения MySQL в корректную.
1) Сделайте дамп (экспорт), покажите структуру любой таблицы в которой есть поля с кириллицей и то, как выглядят крякозябы. Дамп следует открывать в специализированном текстовом редакторе (рекомендую Notepad++).
2) В какой кодировке страницы сайта? Судя по всему это windows-1251. Какой используется скрипт - Форум, самописанный, или еще что-то?
Доброго времени суток! В начале хочу поблагодарить за то что не оставили мою проблему без внимания!
http://depositfiles.com/files/lonkws404 -Дамп таблицы.
id name
1 ?????? ?????
2 ??? ???? ?? ????????? - вид кракозяблов
3 ????? ??? ????
4 ???????? ?????
http://depositfiles.com/files/p172r8i5e - структура таблицы
Кодировка сайта windows-1251, на счет скрипта - не знаю, так как сайт писался другим человеком, а выдавать свои тайны он не хочет , но проблема вот в чем, хочу изменить название заголовков меню( например -стол на стул),
через админку сайта изменить нельзя_ не предусмотрено они жестко забиты в базе. Выход один, изменить заголовки в самой базе, но в myAdmin они отображаются кракозяблами, попробуй разберись, ну да енто пол беды, что есть что - разобрался. А вот когда меняешь название по руски то в myAdmin видно по нормальному, а на сайте или ?????? или кракозяблы. Вот такая петрушка! Спасибо!
sashalviv
Инструкцию по перекодированию дампа отослал на ваш адрес.
Скрипт необходимо подредактировать прописав кодировку соединения с MySQL.
Проведите поиск по всем файлам скрипта. Необходимо найти вызов функции mysql_connect. Сразу после этой функции добавьте строку:
mysql_query('SET NAMES cp1251');
Спосибо, будем пробовать!
Добрый вечер.
Спрошу и я
При заполнении в таблице данных Кирилицей, в браузере отображаются кракозябры (проверка123 ---> ???23)
SHOW GLOBAL VARIABLES LIKE 'char%';
Показывает:
character_set_client cp1251
character_set_connection cp1251
character_set_database cp1251
character_set_filesystem binary
character_set_results cp1251
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Я прочёл тему, но не получается
Когда вставляю строку mysql_query('SET NAMES cp1251'); в config.php
$dblocation = 'localhost';
$dbname = '54321';
$dbpasswd = '12345';
$db = mysql_connect($dblocation,$dbname,$dbpasswd)
mysql_query('SET NAMES cp1251');
or die('<p>К сожалению, не доступен сервер MySQL</p>');
mysql_select_db('54321', $db)
or die('<p>К сожалению, не доступна база данных</p>');
То получаю ошибку в браузере: Parse error: syntax error, unexpected T_STRING in /home/54321/domains/mySite/public_html/config.php on line 7
Используемый скрипт:
require_once("config.php");
$res=mysql_query("SELECT * FROM users WHERE login='".$_SESSION['login']."' AND password='".$_SESSION['password']."'", $db) or die("Query failed: " . mysql_error());
if (mysql_num_rows($res)==0) { Header("Location: enter.php"); }
else {
$sotrudniki_now = mysql_result($res, 0, "sotrudniki_now");
$cat=$_SESSION['login'];
$q=mysql_query("SELECT * FROM dnej WHERE user='".$_SESSION['login']."' ");
echo "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<META NAME='Keywords' CONTENT='USA'>
<META NAME='Description' CONTENT='USA'>
<title>Мои сотрудники</title>
<link type='text/css' rel='stylesheet' href='styles.css'>
Сравнение в таблице выставил: cp1251_general_ci
Удаленный сервер. Доступа к конфигурационному файлу MySQL наверное нет (где его поискать?)
er1cc
Эта строка устанавливает кодировку страницы в utf8 и данные никак не могут записываться в cp1251.
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
Поменяйте строку на:
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
Обратите внимание на сам файл, он тоже должен быть в правильной кодировке. Это можно посмотреть в статусной строке Notepad++, там должно быть ANSI.
Глобальные кодировки у вас в порядке и в запросе устанавливающем кодировку соединения с MySQL нет необходимости. Но если хотите его оставить, то писать надо так:
$dblocation = 'localhost';
$dbname = '54321';
$dbpasswd = '12345';
$db = mysql_connect($dblocation,$dbname,$dbpasswd)
or die('<p>К сожалению, не доступен сервер MySQL</p>');
mysql_query('SET NAMES cp1251');
mysql_select_db('54321', $db)
or die('<p>К сожалению, не доступна база данных</p>');
Hanut
Огромное спасибо за уделённое внимание!
Да, я заметил UTF8 в скрипте страницы, и пробовал менять на windows-1251, но при этом кракозябры только усиливались
Уже и латинский текст становился кракозябрами.
Думаю, как Вы и сказали, дело ещё и в кодировке самой страницы.
Буду пробовать перекодировать её в Notepad+++
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Смена кодировки базы в phpMyAdmin
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.