|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
| Доброе время суток! В MySQL дынные, записанные с PHP отображаются в таблице не так как хотелось бы, но если эти же данные потом считывать в PHP и отображать на странице, то вроде все даже очень ничего. А вот если данные ввести через, скажем, MySQL Query Browser, то PHP эти данные считает как ????????. Т.к. все данные идут с PHP и выводит их же потом PHP, я закрыл глаза на этот недостаток.
Но сегодня сталкнулся со следующей проблемой, которая, как я понимаю, тесно связана с вышеописанной проблемой.
В базе записано имя пользователя на русском языке, например ввели "Черепаха", в MySQL это выглядит "×åðåïàøêà". Не очень красиво.. Видно что пользователь зарегистрировался с большой буквы. Если в MySQL сделать запрос SELECT * WHERE login='черепаха' and password='xxxx', то в ответ ничего не получим. А если запрос сделать с большой буквы, то получим ответ.
Если все тоже проделывать с английскими логинами, такой проблемы нет.
Очевидно, что надо что-то делать с кодировкой.
Сохранять данные с нижним регистром не предлагайте, этот вариант не подойдет, хоть и верный.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
| У меня мультиязычная поддерка стоит в настройке.. т.к. мне необходимо записывать данные не только на русском и английском языках в одну таблицу.
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
|
|
|
|
Supreme Being
      
участник
Last Login: 27.03.2008 15:26
Сообщ.: 701,
Visits: 7 028
|
|
| Проблема известная. Я решал её так - перед выполнением запроса исполнял команду (как SQL запрос) SET NAMES 'cp1251'
После этого все отображалось правильно. Поменять настройки шрифтов не получилось, как ни старался. Команды установки системных переменных MySQL не срабатывали. Но на хостинге у провайдера как правило все выставлено хорошо, так что это (IMHO) проблема только локального MySQL.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
| Кодировку менять получалось, только это никак не отражалось на записываемые данные. А по поводу cp1251 - мне это ведь не подойдет, т.к. у меня не только на русском и английском языке заполняются таблицы. На данный момент стоит кодировка utf8.. Кстати.. Пока писал подмал, данные в ДБ нужно записывать в utf8, а PHP помоему по стандарту какую-то другую использует, iso если не ошибаюсь. Попробую позже.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
Посмотрел в PHP default_mimetype = "text/html" ;default_charset = "iso-8859-1" закоментарина строка, значит не iso.
|
|
|
|
|
Supreme Being
      
администратор
Last Login: 13.11.2007 13:41
Сообщ.: 4 421,
Visits: 49 251
|
|
| для начала ты должен понять что для того чтобы не было проблем кодировки во всех местах должны совпадать. сейчас же ты что делаешь? ты записываешь из php непонятно в чем в БД, где стоит настройка на utf и пытаешься клиентским ПО прочитать то, что записал во-первых utf для русского и английского не обязателен, смотри на этот сайт - он в 1251 во-вторых для теста приведи все к одной локали. локаль в php устанавливается например так setlocale(LC_ALL, "ru_RU.CP1251"); Обрати внимание, что смена настроек в БД/PHP не приведет к автоматической перекодировке тех данных что уже хранятся в БД
|
|
|
|