Необычный случай с кодировкой в PHP

Статус
В этой теме нельзя размещать новые ответы.

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Перерыл весь интернет и весь форум, так и не нашёл ответа,
ситуация сложилась довольно странная, но я расскажу как эту проблему вижу я,
Есть 2 файла ru.php и en.php

в en.php, кодировка utf8
в ru.php, кодировка windows-1251

и так, сайт имеет возможность менять языки, с этим проблем нет..
только если я создаю какой-то блог, описание фотографии, или просто оставляю комментарий на русском языке, то в Английской версии всё отображается чётко, а вот в русской версии начинаю просматривать и появляются иероглифы!
если я добовляю комментарий на русском языке с русской страници то он вообще не добовляется, тоесть вместо русских букв пустые места, если англ буквы то всё ок..

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

Варианты которые я пробовал для устранения проблемы:
менял кодировки в файлах en.php и ru.php,
выставлял везде где умел одну и ту-же кодировку..

в итоге всё равно, всё что в файле ru.php отображается нормально, а комментарии и всё что новое вноситься в базу данных иероглифы..


мне кажеться нужно как-то всю страницу сделать под UTF-8, или настроить таблици в mysql под windows-1251

Что бы было легче понять проблему можете просмотреть её в онлайн режиме))

_www.date.gio.ee

Login: asdasd
Pass: asdasd

Очень надо!
Помогите кто может!!!:thenks:
 
мне кажеться нужно как-то всю страницу сделать под UTF-8
Верная мысль.

Посмотрел на сайт - действительно инфа в базу падает не в той кодировке (назад возвращаются вопросики)

Вобще стоит проверить все участки на отсутствие кодировок отличныйх от UTF-8
а имеено:
1. Сервак(ось, локаль)
2. Дефолт локаль в mysql.
3. Дефолт локаль для базы/таблицы.
4. Само двигло (не должно ниче конвертить и извращать)
(Пункты 2-3 проверяем в phpmyadmin)
 
Присвоение таблицам соответвия кодировке в mysql,phpadmin не совсем корректны.Надо расставлять в соответсвиии .бился в жумле с такой же проблемой. 2 языка и одна база,но таблицы хоть разные.
В идеале перевеси бы всю на utf и нет проблем.(
 
Я не призываю к присвоению! Я сторонник нативного UTF-8. А как ТС к нему прийдет - это уже детали. Конвертить чтото готовое - это уже всеравно что трипер лечить... поздно (но нужно)...
Мне видится что ТС в разработке и он щаз может выбрать правильные кодировки на всех этапах и не поеб...ть...
оних и писалъ.
 
Да че тут голову ломать? Весь сайт на utf-8 (и все файлы наверное, а не только en.php), и только русский - 1251.Конвертни ru.php в utf-8 и будет счастье.
 
Если много языков лучше делать utf8. Базу, таблицы и поля установить utf8_general_ci, кодировку страниц установить charset=utf-8, все php файлы где есть тексты, слова, переводы конвертировать в utf8 (например с adobe dreamweaver), остальные где только ascii то не надо. После подключения к базе (mysql_select_db), определить кодировку
PHP:
mysql_query("SET NAMES 'utf8'");
Если проблемы в ie с кодировкой или сервер возвращает не utf8, то создать .htaccess файл:
Код:
AddDefaultCharset utf-8
 
Пробую решить проблему но пока слабо получается, кстати заметил еще 1 нюансик, если с русской версии сайта, я в браузере переключаю кодировку на UTF-8 то русские сообщения отправляются и читаются, но тогда весь перевод сайта преобразовывается в иероглифы..

Добавлено через 9 минут
Следующая проблема!
когда вся страница на UTF-8 то единственной проблемой остаётся вывод перевода из ru.php на саму страницу, перевод текста в иероглифах а вывод из БД правильный, как мне сделать что бы русский текст из ru.php отображался правильно в UTF-8 кодировке?
вы это можете так-же сами просмотреть: меняете в браузере кодировку на UTF-8 и появляется возможность оставлять комменты и читать, но перевод страницы не читаем:confused:
 
хм, а о такой команде ничего не слышали?
PHP:
mysql_set_charset()
RTFM
 
Слышал Слышал=)
но мне сейчас нужно что бы на странице работал русский перевод в UTF-8 кодировке,
а я не знаю как это сделать, перевод храниться в PHP файле, не в БД
 
Конвертните русский перевод в UTF-8 и установите кодировку страницы жестко.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху