Иероглифы...
#1

Сделал, чтобы отправлялись баны в 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.
Reply
#2

у каждой БД и таблицы можно указать кодировку символов, в которой будут хранится строковые параметры. Я думаю, у вас указана не русская кодировка. Попробуйте изменить кодировку на cp1251. Подробности этого решения проблемы можно узнать ЗДЕСЬ
Reply
#3

Quote:
Originally Posted by HappyScripter
View Post
у каждой БД и таблицы можно указать кодировку символов, в которой будут хранится строковые параметры. Я думаю, у вас указана не русская кодировка. Попробуйте изменить кодировку на cp1251. Подробности этого решения проблемы можно узнать ЗДЕСЬ
sa-mp работает с юникодом, так что ставьте всегда utf8_general_ci для БД и всех таблиц и строковых полей, и не забываем указывать сразу же после подключения с какой кодировкой отправляются запросы!

ЗЫ HappyScripter, покажи мне русскую кодировку. Нет, скажи какую национальность имеет cp1251 или utf8?
Reply
#4

mysql_connect(...)

mysql_set_charset("cp1251");
mysql_query("SET NAMES 'cp1251'");
так?

или так
mysql_set_charset("utf8_general_ci");
mysql_query("SET NAMES 'utf8_general_ci'");
Reply
#5

Степашка, samp использует юникод только в клиенте, если это можно так назвать, он только конвертирует ANSI символ в Юникод символ согласно текущей кодировке системы при выводе в чат/3Д текст/диалог. А что же сервер?

PHP Code:
main()
{
    new 
abc[] = "абв";
    
printf"%d, %d, %d"abc[0], abc[1], abc[2] ); // 224, 225, 226, юникод? y/n

С чего бы ANSI скрипт стал юникод скриптом?
Reply
#6

Quote:

mysql_set_charset("utf8");
mysql_query("SET NAMES 'utf8'");

HappyScripter, потому что ANSI таблица символов и может быть даже в юникоде. И пример показывающий код символ это бред полнейщий, который близок к отображению кодеровки также как свинья родственник жирафа.
Reply
#7

Вы хотя бы не поленитесь просветится в Инете по вопросу Юникода перед ответом. Потому что Ваше "ANSI таблица символов и может быть даже в юникоде" мне явно дает понять, что Вы слышали звон, но откуда он конкретно был - не знаете и даже не потрудились узнать.
Reply
#8

так, решения своей проблемы я не нашёл, спрошу тут. такая же проблема с кириллицей.
стоит 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 `playersWHERE `password` = MD5('%s'
Reply
#9

pawn Code:
mysql_query("SET NAMES utf8;");
mysql_query("SET SESSION character_set_server=utf8;");
Reply
#10

Code:
ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET cp1251_general_ci или utf8_general_ci
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)