Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2015, 10:53   #1
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию MySQL и PHP кодировка

Всем Привет!

Есть
- База MySQL, таблица в кодировке cp1251_general_ci
- Файл PHP в UTF-8

Киррилица в самом файле отображается на страничке нормально
Через админку в таблице киррилицу тоже видно
А вот на страничке данные из БД в "голубых" ромбиках

Раньше не вылазило проблем, а сейчас такая канитель

Помогите, плиз
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 18.06.2015, 11:07   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

если админка и сайт в utf-8, вам легче просто изменить кадировку таблиц в бд, ну или просто, там где идет подключение к бд добавить кодировку:

#mysqli
Код:
$db = new mysqli();
$db->set_charset("utf8");
OR
$db = mysqli_connect()
mysqli_set_charset($db, "utf8");
#mysql
Код:
mysql_query("SET NAMES utf8");
uberchel вне форума Ответить с цитированием
Старый 18.06.2015, 11:20   #3
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
Код:
$db = mysqli_connect()
mysqli_set_charset($db, "utf8");
Спасибо, работает, но почему так? раньше проблем таких не возникало

Всегда БД создавал по умолчанию в 1251
Файл в UTF-8 и все работало, а сейчас вылезло...

Где произошел сбой?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 18.06.2015, 12:23   #4
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

а как в обратную сторону при записи в БД?
пробовал
Код:
$db = mysqli_connect()
mysqli_set_charset($db, "cp1251");
не работает
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 18.06.2015, 13:13   #5
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

до этого наверно сайт был у вас в 1251, либо сайт у вас 1251, а сервер utf8, вообщем много факторов, тут надо уже предметно смотреть.
скажу 1, что сейчас уже надо завязывать с кириллицей и переходить на utf8.
uberchel вне форума Ответить с цитированием
Старый 18.06.2015, 13:46   #6
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

переходить где?
страничка и так utf8 или это не стой оперы?

и второе: как обратно из формы в базу корректно вернуть? (мой предыдущий пост)
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
spirit-ua вне форума Ответить с цитированием
Старый 18.06.2015, 14:31   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от spirit-ua Посмотреть сообщение
переходить где?
страничка и так utf8 или это не стой оперы?
"переходить" - это чтобы и сервер и страничка и таблицы в БД, всё было в кодировке utf-8
Тогда не надо будет ничего никуда "возвращать" или конвертировать.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2015, 15:56   #8
spirit-ua
Форумчанин
 
Аватар для spirit-ua
 
Регистрация: 04.06.2009
Сообщений: 351
По умолчанию

при создании БД что ставить:
1. Сопоставление соединения с MySQL: ?
2. Сравнение уже в БД?

utf8_general_ci или utf8_unicode_ci

я так понимаю что для рус\англ можно использовать utf8_general_ci
а для языков с точками (немецкий) нужно utf8_unicode_ci

верно?
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!

Последний раз редактировалось spirit-ua; 18.06.2015 в 16:04.
spirit-ua вне форума Ответить с цитированием
Старый 18.06.2015, 16:07   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я не спец в этих делах, но, на мой непрофессиональный взгляд, нужно выбрать
utf8_general_ci
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mysql и Delphi - кодировка bilibian Общие вопросы Delphi 5 06.02.2014 15:36
кодировка Mysql Nebojitel SQL, базы данных 0 01.11.2011 20:12
MySQl - кодировка Kapitann PHP 1 24.10.2010 01:34
Кодировка MySql Musho Java Базы данных (JDBC, JPA, Hibernate) 1 05.10.2010 05:25
Кодировка в MySQL и Delphi Droid БД в Delphi 2 18.06.2009 00:08