Проблема с кодировкой в mysql -
Red391 - 03.06.2012
Здравствуйте все желающие помочь
При выводе русских букв из бд - получаю каракули.
Темы на форуме искал (все что нашёл - не помогли)
В бд в таблице в ячейке стоит кодировка utf8
При коннекте 3 запроса выполняю:
Код:
mysql_set_charset("utf8_general_ci");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
Прошу помощи, так как всё, что мог уже испробовал. Заранее благодарен
Re: Проблема с кодировкой в mysql -
The_Creator - 03.06.2012
Попробуйте таким образом:
Код:
mysql_set_charset ("cp1251");
mysql_query("SET NAMES 'cp1251'");
Re: Проблема с кодировкой в mysql -
Red391 - 03.06.2012
Смена кодировки решит проблему, но это не то что мне нужно.
utf8 обширнее, потому и пытаюсь разобраться с ней.
Всё же, спасибо за помощь.
Re: Проблема с кодировкой в mysql -
jhonyxakep - 03.06.2012
Quote:
mysql_set_charset("utf8_general_ci");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
|
Я а этом не особо шарю, но разве не
mysql_set_charset("utf8");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
?
Re: Проблема с кодировкой в mysql -
Red391 - 04.06.2012
К сожалению данное исправление тоже не помогло
Re: Проблема с кодировкой в mysql -
jhonyxakep - 04.06.2012
mysql_set_charset("utf8_general_ci");
mysql_query("SET NAMES 'utf8_general_ci'");
mysql_query("SET CHARACTER SET 'utf8_general_ci'");
Вы сначала попробуйте перебрать несколько вариантов.
Re: Проблема с кодировкой в mysql -
eakwarp - 04.06.2012
А зачем вообще устанавливать кодировку таким образом? У нужного поля уже выставлена нужная кодировка, если очень хочется, можно и на всю бд ее выставить.
Re: Проблема с кодировкой в mysql -
Stepashka - 04.06.2012
Главный вопрос: с кодировкой запросов понятно, а вот кодировка бд в
utf8_general_ci?
Quote:
Originally Posted by jhonyxakep
Я а этом не особо шарю, но разве не
mysql_set_charset("utf8");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
?
|
нет.
Re: Проблема с кодировкой в mysql -
Red391 - 04.06.2012
Я перебрал несколько вариантов, когда пробовал первый. Ни utf8, не utf8_general_ci не помогают.
Quote:
а вот кодировка бд в utf8_general_ci?
|
Да, именно в utf8_general_ci, вся бд, и всё ячейки и столбцы.
Re: Проблема с кодировкой в mysql -
Red391 - 04.06.2012
Кто нибудь знает - как решить эту проблему?
С кодировкой запроса и с кодировкой бд всё в порядке.
Что ещё может влиять?
Re: Проблема с кодировкой в mysql -
eakwarp - 04.06.2012
Quote:
Originally Posted by Red391
Кто нибудь знает - как решить эту проблему?
С кодировкой запроса и с кодировкой бд всё в порядке.
Что ещё может влиять?
|
Лучший вариант, ограничится теми данными, что установлены на таблице и на бд, и не использовать вышеприведенных функций и запросов вовсе.
Re: Проблема с кодировкой в mysql -
Red391 - 04.06.2012
Quote:
и не использовать вышеприведенных функций и запросов вовсе.
|
Отказ от запросов - не помог, всё те же не русские буквы при выводе.
Re: Проблема с кодировкой в mysql -
eakwarp - 04.06.2012
Quote:
Originally Posted by Red391
Отказ от запросов - не помог, всё те же не русские буквы при выводе.
|
Покажите как выводите, и как записываете.
Re: Проблема с кодировкой в mysql -
Red391 - 04.06.2012
Записываю в бд вручную.
Вывожу из стандартными методами
Записываю в enum данные из ячейки.
Вывожу - из enum'a
Код:
stock Load()
{
new query[100];
mysql_query("SELECT * FROM `TableName`");
mysql_store_result();
if(mysql_num_rows() > 0)
{
for(new idx = 1; idx <= mysql_num_rows(); idx++)
{
mysql_fetch_row(query);
sscanf(query, "p<|>s[32]", GetMassiv[Name]);
}
}
mysql_free_result();
return 1;
} //Это сток вывода и записи в enum из бд mysql
Вывод из enum'a произвожу к примеру:
Код:
SendClientMessage(playerid,0xFFFFFFAA,"Вывод из бд русских букв: %s",GetMassiv[Name]);
Сам enum:
Код:
enum enumMassiv
{
GetMassiv[Name]
};
new GetMassiv[enumMassiv];
Re: Проблема с кодировкой в mysql -
Stepashka - 05.06.2012
pawn Код:
if(mysql_num_rows() > 0)
{
for(new idx = 1; idx <= mysql_num_rows(); idx++)
{
mysql_fetch_row(query);
sscanf(query, "p<|>s[32]", GetMassiv[Name]);
}
}
меняем на
pawn Код:
while(mysql_fetch_row(query))
{
sscanf(query, "p<|>s[32]", GetMassiv[Name]);
}
- В enum вы ничего не записываете и не выводите, это вообще не ячейка памяти. Кстати он тут вообще не нужен.
- Почему по коду у тебя GetMassiv[Name], а в enum маркер имеет имя fName?
- Я не вижу смысла в цикле, у тебя в GetMassiv одна строка.
Re: Проблема с кодировкой в mysql -
Stepashka - 05.06.2012
Quote:
Originally Posted by Red391
Записываю в бд вручную.
|
Вот отсюда поподробней, через что записываем?
Что показывает эксперимент если записывать из мода?
Re: Проблема с кодировкой в mysql -
Crazy_Str - 05.06.2012
попробуй а то тоже сегодня проблема с выводом названия локации в GPS та же беда была это помогло
Quote:
mysql_set_charset("cp1251_general_ci");
mysql_query("SET NAMES 'cp1251'");
mysql_query("SET CHARACTER SET 'cp1251'");
|
Re: Проблема с кодировкой в mysql -
Red391 - 05.06.2012
Quote:
Почему по коду у тебя GetMassiv[Name], а в enum маркер имеет имя fName?
Я не вижу смысла в цикле, у тебя в GetMassiv одна строка.
|
Недосмотрел с fName, это не копированный код(не хотел, чтобы здесь был код на всю страницу), я его упростил вчера, чтобы показать пример того, что есть в моде - потому кое где всё же лажанулся с именами, но принцип ясен.
Цикл имеет смысл, так как там enum на деле не одна строка.
Прости за неточность
Quote:
Вот отсюда поподробней, через что записываем?
|
Русское слово или два, не превышающих 32 символа, вручную в веб оболочке mysql.
Ну вообще мне из мода собственно и не нужно, но как вернусь - проведу експеримент и отпишусь о результатах.
Re: Проблема с кодировкой в mysql -
eakwarp - 05.06.2012
Quote:
Originally Posted by Red391
Недосмотрел с fName, это не копированный код(не хотел, чтобы здесь был код на всю страницу), я его упростил вчера, чтобы показать пример того, что есть в моде - потому кое где всё же лажанулся с именами, но принцип ясен.
Цикл имеет смысл, так как там enum на деле не одна строка.
Прости за неточность
Русское слово или два, не превышающих 32 символа, вручную в веб оболочке mysql.
Ну вообще мне из мода собственно и не нужно, но как вернусь - проведу експеримент и отпишусь о результатах.
|
Вручную, в веб оболочке(наверняка пхпмайадмине), естественно в итоге выльется в это.
Re: Проблема с кодировкой в mysql -
OKStyle - 05.06.2012
В phpmyadmin надо установить кодировку базы и кодировку сравнений в ту, которая тебе нужна. В основном они разные, поэтому необходимо установить везде одинаковую. Столкнулся с этим при тестировании CMS для сайта...