Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: В базу данных записывается и выводиться текст вида "??????????"
 
 автор: Sywooch   (28.03.2006 в 01:11)   письмо автору
 
 

Незнаю че и делать нехочет база работать с нашим текстом :(
На буржуйском нормально, а как родной я зык увидит так всё на символы вопросительного и меняет.

Помогите решить проблемму!

   
 
 автор: cheops   (28.03.2006 в 01:24)   письмо автору
 
   для: Sywooch   (28.03.2006 в 01:11)
 

Сразу после установки соедиения и выбора базы данных выполните запрос
<?php
  mysql_query
("SET NAMES 'cp1251'");
?>

PS Подразумевается, что текст будет в кодировке win-1251.

   
 
 автор: Sywooch   (28.03.2006 в 01:31)   письмо автору
 
   для: cheops   (28.03.2006 в 01:24)
 

Понял.
Но чтот всеравно неработает.

Может быть из-за того что база уже создана?

   
 
 автор: cheops   (28.03.2006 в 02:02)   письмо автору
 
   для: Sywooch   (28.03.2006 в 01:31)
 

А в самой базе данных кодировка по умолчанию какая выбрана?

   
 
 автор: Sywooch   (28.03.2006 в 02:09)   письмо автору
 
   для: cheops   (28.03.2006 в 02:02)
 

cp1251_general_cs самой базы
latin1_swedish_ci таблиц :(
Так и непонял че?

Поменял таблиц кодировку всеравно вопросики.

Даже если вручную ввожу русское слово печетает эти вопросики. :((((

   
 
 автор: cheops   (28.03.2006 в 13:30)   письмо автору
 
   для: Sywooch   (28.03.2006 в 02:09)
 

Где дело происходит в Linux, в Windows, на локальной машине или на сервере?

   
 
 автор: ano360   (31.03.2006 в 19:11)   письмо автору
 
   для: cheops   (28.03.2006 в 01:24)
 

Это надо вводить при создании базы данных,создании таблицы или заполнении таблицы?

   
 
 автор: Trianon   (31.03.2006 в 19:23)   письмо автору
 
   для: ano360   (31.03.2006 в 19:11)
 

это надо вводить каждый раз сразу после выбора БД . mysql_select_db()

   
 
 автор: ano360   (31.03.2006 в 19:56)   письмо автору
 
   для: Trianon   (31.03.2006 в 19:23)
 

попробуем

   
 
 автор: ano360   (31.03.2006 в 20:28)   письмо автору
 
   для: ano360   (31.03.2006 в 19:56)
 

Всем спасибо-заработало
После смены кодировки в файле my.ini с latin na cp1251 с помощью утилиты:
MySQL Server Instance Config Wizard
mysql.exe перестал открываться через MySQL Command Line Client, вместо этого выдаётся звуковой сишнал и окошко закрывается, приходится заходить через консоль windows в каталог, и открывать файл mysql.exe -uroot, который при таком открытии открывается без сбоев. С чем это может быть связано?

   
 
 автор: straiver   (01.04.2006 в 12:10)   письмо автору
 
   для: ano360   (31.03.2006 в 20:28)
 

У меня было то же самое. Ты установил кодировку только для mysqld попробуй прописать кодировку точно также и для mysql(секция client в my.ini) MySQL Command Line Client должен заработать.

   
 
 автор: pba   (30.03.2006 в 10:13)   письмо автору
 
   для: Sywooch   (28.03.2006 в 01:11)
 

В новых версиях MySQL (начиная с 4.1.0) изменился порядок работы с национальными кодировками, поэтому старый код может вызывать появление в таблице базы данных знаков вопроса '????????' вместо русского текста. Для того, чтобы этого не возникало в начало PHP-скрипта, после установки соединения с базой данных, следует поместить следующие строки:

<?php
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
?>

   
 
 автор: ano360   (30.03.2006 в 19:17)   письмо автору
 
   для: pba   (30.03.2006 в 10:13)
 

У меня такая-же проблема, но вышеизложенные методы мне не помогли, у меня таблица создана, когда кодировка была LATIN, потом я через MSQL configuration поменял на cp1251, вскоре поменялкодировку базы в файле db.opt-не помогло но если раньше писало прости по китайски, то теперь появились ????????????, вышеизложенные методы не помогают, что делать, как сделать, чтобы хотябы новые записи сохранялись нармально?

   
 
 автор: cheops   (30.03.2006 в 21:32)   письмо автору
 
   для: ano360   (30.03.2006 в 19:17)
 

?????? появляется в результате каких действий? Не могло это появится в базе до изменений? Т.е. возможно в базе у вас лежат полноценные знаки вопросов, которые уже ни во что не переконвертнёшь - вы с нуля пробуете данные добавлять?

   
 
 автор: straiver   (31.03.2006 в 02:38)   письмо автору
 
   для: cheops   (30.03.2006 в 21:32)
 

У меня та же самая проблема. После инсталяциии MySQL сначала выдавала сообщение вроде " Couldn't set cp1251 charset becouse it wasn't specified and compiled" пока вручную не добавил в my.cnf для клиента и сервера
character-sets-dir="F:/usr/local/mysql/share/charsets"
default-character-set=cp1251
После этого перестала ругаться, но при попытке вставить русский текст в таблицу получаю надпись: Data too long for column '...' at row ... затем вставил код из предыдущего поста:

mysql_query ("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'"); 
mysql_query ("set collation_connection='cp1251_general_ci'");  

Теперь печатает все теже злополучные вопросики вместо русских букв...
По всей видимости, глюк чисто пятой версии. У остальных тоже MySQL 5.0.19?

   
 
 автор: cheops   (31.03.2006 в 12:07)   письмо автору
 
   для: straiver   (31.03.2006 в 02:38)
 

5.0.18 как часы работает... А какой вариант ставили, часом не essential? Выполните команду
SHOW CHARACTER SET;

Кодировка cp1251 поддерживается системой?

   
 
 автор: Бамси   (31.03.2006 в 17:34)   письмо автору
 
   для: cheops   (31.03.2006 в 12:07)
 

У меня такая же проблемма, все в кодировке 1251.
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
Все есть в Mysql, все подставил что вы советовали, но ничего не помагает, mysql 5.0.4

   
 
 автор: ano360   (31.03.2006 в 20:38)   письмо автору
 
   для: Бамси   (31.03.2006 в 17:34)
 

Если у тебя mysql на домашнем пк, попробуй вот это
ПУСК=>Программы=>Cтандартные=>Командная строка, где введите код:

cd C:\............\mysql\bin
chcp 1251
mysql.exe -uROOT//или какой у вас там пользователь, если есть пароль, введите :mysql.exe -uroot -pPASS//где PASS-пароль, вводитсясразу после -p
use base//или какая у вас база?
SET NAMES 'cp1251';
select * from TABLE; или какой у вас там пользователь


Если русский текст не отображается, обращайтесь к Trianon или cheops, если и они не помогут-заново проверьте всё, что вам советовали, если не поможет, проверьте заного, повторять до тех пор, пока не заработает или число проверок не превысет 1024-тогда можно опять обратиться на форум с тамже вопросом, если повезёт-ответ найдётся.

   
 
 автор: ano360   (31.03.2006 в 19:09)   письмо автору
 
   для: cheops   (31.03.2006 в 12:07)
 

в списке писутствует, идёт её описание и в последнем столбце 1

   
 
 автор: straiver   (01.04.2006 в 12:00)   письмо автору
 
   для: cheops   (31.03.2006 в 12:07)
 

Ставил действительно essential, но кодировка cp1251 поддерживается системой!!! Так что даже не знаю в чем дело...

   
 
 автор: ano360   (31.03.2006 в 18:48)   письмо автору
 
   для: cheops   (30.03.2006 в 21:32)
 

Ну я наверно не совсем идиот, я и таблицу пересоздавал, и базцу пересоздавал, и данные снова вводил->????????????????

   
 
 автор: Бамси   (31.03.2006 в 23:44)   письмо автору
 
   для: ano360   (31.03.2006 в 18:48)
 

Через Mysql client так же выводяться ????....
Получаеться они порртяться когда заносяться в базу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования