Иероглифы... -
androm - 25.08.2011
Сделал, чтобы отправлялись баны в mysqlовскую бд.
Всё норм, но когда я пишу причину на русском, то в бд она отображается иероглефами, или знаки вопросов...
Code:
format(query,sizeof(query),"INSERT INTO bans (Name, Reason, Admin, Ip, time) VALUES('%s','%s','%s','%s','%d/%d/%d %d:%d:%d')",iName,gMessage,aName,ipip, day1,month1,year1, hour1, minute1, second1);
mysql_query(query);
чё делать?
Тоже самое, если бан лист просто вывести на сайт с php и ftp.
Re: Иероглифы... -
HappyScripter - 25.08.2011
у каждой БД и таблицы можно указать кодировку символов, в которой будут хранится строковые параметры. Я думаю, у вас указана не русская кодировка. Попробуйте изменить кодировку на cp1251. Подробности этого решения проблемы можно узнать
ЗДЕСЬ
Re: Иероглифы... -
Stepashka - 25.08.2011
Quote:
Originally Posted by HappyScripter
у каждой БД и таблицы можно указать кодировку символов, в которой будут хранится строковые параметры. Я думаю, у вас указана не русская кодировка. Попробуйте изменить кодировку на cp1251. Подробности этого решения проблемы можно узнать ЗДЕСЬ
|
sa-mp работает с юникодом, так что ставьте всегда utf8_general_ci для БД и всех таблиц и строковых полей, и не забываем указывать сразу же после подключения с какой кодировкой отправляются запросы!
ЗЫ
HappyScripter, покажи мне русскую кодировку. Нет, скажи какую национальность имеет
cp1251 или
utf8?
Re: Иероглифы... -
DANGER1979 - 25.08.2011
mysql_connect(...)
mysql_set_charset("cp1251");
mysql_query("SET NAMES 'cp1251'");
так?
или так
mysql_set_charset("utf8_general_ci");
mysql_query("SET NAMES 'utf8_general_ci'");
Re: Иероглифы... -
HappyScripter - 25.08.2011
Степашка, samp использует юникод только в клиенте, если это можно так назвать, он только конвертирует ANSI символ в Юникод символ согласно текущей кодировке системы при выводе в чат/3Д текст/диалог. А что же сервер?
PHP Code:
main()
{
new abc[] = "абв";
printf( "%d, %d, %d", abc[0], abc[1], abc[2] ); // 224, 225, 226, юникод? y/n
}
С чего бы ANSI скрипт стал юникод скриптом?
Re: Иероглифы... -
Stepashka - 25.08.2011
Quote:
mysql_set_charset("utf8");
mysql_query("SET NAMES 'utf8'");
|
HappyScripter, потому что ANSI таблица символов и может быть даже в юникоде. И пример показывающий код символ это бред полнейщий, который близок к отображению кодеровки также как свинья родственник жирафа.
Re: Иероглифы... -
HappyScripter - 26.08.2011
Вы хотя бы не поленитесь просветится в Инете по вопросу Юникода перед ответом. Потому что Ваше
"ANSI таблица символов и может быть даже в юникоде" мне явно дает понять, что Вы слышали звон, но откуда он конкретно был - не знаете и даже не потрудились узнать.
Re: Иероглифы... -
sanya_gnoy - 25.12.2012
так, решения своей проблемы я не нашёл, спрошу тут. такая же проблема с кириллицей.
стоит denwer, на семёрке x64, всё что можно стоит на
utf8_general_ci,
вот скрины.
__________________________________________________
mysql_charset("utf8") не записывает русские буквы вообще (5 строка)
а
utf8_general_ci и
сp1251_general_ci выдают иероглифы.
а если строчка mysql_charset() отсутствует, то кодировку выдаёт почему то latin1.
__________________________________________________

везде уже посмотрел, и везде спрашивал, но ничего не помогло.
ps есть варик перекинуть всё на md5. он по идее должен в базу и из базы пропускать только английские буквы и цифры, а потом декодировать на возможные русские буквы уже в моде, так ведь?
pss так сделать то можно, но всё-же хотелось бы узнать, как записывать кириллицу в бд.
PHP Code:
INSERT INTO `players` ( `password` ) VALUES ( MD5('%s') )
SELECT * FROM `players` WHERE `password` = MD5('%s')
Re: Иероглифы... -
Stepashka - 26.12.2012
pawn Code:
mysql_query("SET NAMES utf8;");
mysql_query("SET SESSION character_set_server=utf8;");
Re: Иероглифы... -
AirKite - 26.12.2012
Code:
ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET cp1251_general_ci или utf8_general_ci