26

Re: Смена кодировки базы в phpMyAdmin

nik
Тогда показывайте что вы используете, иначе понять где ошибка, невозможно.

ВКонтакте Facebook Twitter

27

Re: Смена кодировки базы в phpMyAdmin

Думаю вы уже поняли, что я только начал поэтому не всегда понимаю а чем вы говорите.Вам нужна web-страница и БД?

28

Re: Смена кодировки базы в phpMyAdmin

nik
Просто объясните что за скрипт используете, это форум какой-то или что-то другое? Если это ваш скрипт, то покажите его.

ВКонтакте Facebook Twitter

29

Re: Смена кодировки базы в phpMyAdmin

<?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.

30

Re: Смена кодировки базы в phpMyAdmin

Сразу после функции mysql_connect() добавьте строку:

mysql_query('SET NAMES cp1251');

Либо, при наличии доступа к конфигурационному файлу MySQL (my.ini), пропишите в разделе [mysqld] строку:

init-connect="SET NAMES cp1251"

ВКонтакте Facebook Twitter

31

Re: Смена кодировки базы в phpMyAdmin

После добавления строки 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"

32

Re: Смена кодировки базы в phpMyAdmin

nik
У вас страница скрипта в utf8. Сохраните ее в cp1251 (ANSI). Используйте текстовый редактор, который нормально работает с кодировками, например, Notepad++.

ВКонтакте Facebook Twitter

33

Re: Смена кодировки базы в phpMyAdmin

Hanut пишет:

nik
У вас страница скрипта в utf8. Сохраните ее в cp1251 (ANSI). Используйте текстовый редактор, который нормально работает с кодировками, например, Notepad++.

Сохранил через редактор Notepad2 браузер выдает тоже самое.Работаю с программой Adobe DreamweaverCS4 но везде стоит кодировка cp1251 в том числе и в браузере.Мне кажется все дело в том что кодировка MySQL сервера выставлена в UTF-8 Unicode (utf8) ведь все эти кракозябры получаются после запроса к БД.Возможно такое?

34

Re: Смена кодировки базы в phpMyAdmin

nik
А как данные в phpMyAdmin отображаются? Там кириллица видна?

ВКонтакте Facebook Twitter

35

Re: Смена кодировки базы в phpMyAdmin

Да все на русском.

36

Re: Смена кодировки базы в phpMyAdmin

nik
У пользователя, которым идет подключения должны быть убраны привилегии в разделе "Администрирование" - проверьте.

ВКонтакте Facebook Twitter

37

Re: Смена кодировки базы в phpMyAdmin

Я так понял нужно убрать привилегии касаемые администрирования?Чтобы это сделать нужно ли заходить как администратор(root)?

38

Re: Смена кодировки базы в phpMyAdmin

nik
Можно зайти под самим пользователем, или как root.

ВКонтакте Facebook Twitter

39

Re: Смена кодировки базы в phpMyAdmin

Добрый день.Сделал теперь в браузере все на русском но в таблице теперь вот это ?????? ?????? ?????????!!!!!!

40

Re: Смена кодировки базы в phpMyAdmin

nik
Что вы сделали?

Вам надо совместить три вещи: кодировка страницы сайта (задается при создании файла и прописывается в метатеге), кодировка соединения с MySQL (устанавливается с помощью запроса SET NAMES), кодировка таблиц в БД (устанавливается при создании таблицы).

ВКонтакте Facebook Twitter

41

Re: Смена кодировки базы в phpMyAdmin

Я переустановил phpMyadmin с 3.0.3 на 3.1.3 теперь все работает так как и должно.Спасибо вам за помощь.Все окозалось довольно просто.

42

Re: Смена кодировки базы в phpMyAdmin

nik
Спасибо за то, что отписали о решении проблемы.

Все пользователи третьей ветки phpMyAdmin - обновите скрипт до 3.1.3, в предыдущих версиях была ошибка с установкой кодировки соединения с MySQL, которая привязывалась к выставленному на главной странице сравнению, чего быть не должно.

ВКонтакте Facebook Twitter

43

Re: Смена кодировки базы в phpMyAdmin

Доброго всем времени суток! Обращаюсь ко всем кто может помочь. Уже мучаюсь с проблемой 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 (2009-04-02 17:29:10)

44

Re: Смена кодировки базы в phpMyAdmin

sashalviv
Решение следует в два этапа: перекодировка данных из крякозябов в кириллицу; установка кодировки соединения MySQL в корректную.

1) Сделайте дамп (экспорт), покажите структуру любой таблицы в которой есть поля с кириллицей и то, как выглядят крякозябы. Дамп следует открывать в специализированном текстовом редакторе (рекомендую Notepad++).
2) В какой кодировке страницы сайта? Судя по всему это windows-1251. Какой используется скрипт - Форум, самописанный, или еще что-то?

ВКонтакте Facebook Twitter

45

Re: Смена кодировки базы в phpMyAdmin

Доброго времени суток! В начале хочу поблагодарить за то что не оставили мою проблему без внимания!

http://depositfiles.com/files/lonkws404  -Дамп таблицы.

  id name
      1 ?????? ?????
      2 ??? ???? ?? ?????????           - вид кракозяблов
      3 ????? ??? ????
      4 ???????? ?????


http://depositfiles.com/files/p172r8i5e                                       -   структура таблицы

Кодировка сайта    windows-1251, на счет скрипта - не знаю, так как сайт писался другим человеком, а выдавать свои тайны он не хочет , но проблема вот в чем, хочу изменить название заголовков меню( например -стол на стул),
через админку сайта изменить нельзя_ не предусмотрено они жестко забиты в базе. Выход один, изменить заголовки в самой базе, но в myAdmin они отображаются кракозяблами, попробуй разберись, ну да енто пол беды, что есть что - разобрался. А вот когда меняешь название по руски то в myAdmin видно по нормальному, а на сайте или ?????? или кракозяблы. Вот такая петрушка! Спасибо!

46

Re: Смена кодировки базы в phpMyAdmin

sashalviv
Инструкцию по перекодированию дампа отослал на ваш адрес.

Скрипт необходимо подредактировать прописав кодировку соединения с MySQL.
Проведите поиск по всем файлам скрипта. Необходимо найти вызов функции mysql_connect. Сразу после этой функции добавьте строку:

mysql_query('SET NAMES cp1251');

ВКонтакте Facebook Twitter

47

Re: Смена кодировки базы в phpMyAdmin

Спосибо, будем пробовать!

48

Re: Смена кодировки базы в phpMyAdmin

Добрый вечер.
Спрошу и я smile
При заполнении в таблице данных Кирилицей, в браузере отображаются кракозябры (проверка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/

Я прочёл тему, но не получается sad
Когда вставляю строку 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 наверное нет (где его поискать?)

49

Re: Смена кодировки базы в phpMyAdmin

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>');

ВКонтакте Facebook Twitter

50

Re: Смена кодировки базы в phpMyAdmin

Hanut
Огромное спасибо за уделённое внимание!
Да, я заметил UTF8 в скрипте страницы, и пробовал менять на windows-1251, но при этом кракозябры только усиливались smile
Уже и латинский текст становился кракозябрами.
Думаю, как Вы и сказали, дело ещё и в кодировке самой страницы.
Буду пробовать перекодировать её в Notepad+++