На Денвере все отлично работает Импортировал на хостинг, началось не понятное. Менял разные кодировки, страничка выводиться из бд то треугольники, то знак вопроса, то только русский не выводиться. А то все выводиться но в БД все тектсы и варчары на хз каком языке написаны Я чесно читал но не чего не понял, дайте может еще ссыль какую почитать. ВВодные Хостинг: MySQL-кодировка: UTF-8 Unicode (utf8) Сопоставление соединения с MySQL: utf8_general_ci Сравнение сп1251_бин В каком формате загружать на хостинг БД Да в Скрипте еще стоит строка mysql_query("SET NAMES cp1251"); Или просто где почитать на нормальном языке? Спасибо
на самом деле заголовок темы некорректный. проблема не в базе, а на страничке. в set names указывается кодировка твоей странички — какой ее видит браузер. обычно она та же, что и в базе. но такого жесткого требования нет. set names просит сервер БД перекодировать данные на лету в ту и в обратную сторону без усилий с твоей стороны. так что остается выяснить делаешь ли ты страничку в 1251 или просто не понимаешь что именно ты делаешь. Добавлено спустя 1 минуту 50 секунд: p.s. Денвер славится тем, что по умолчанию подставляет в страничку заголовок с charset windows-1251. например вот здесь описана проблема. за это надо Котерову руки отпилить! XXI век на дворе, а они, сцуко, навязывают школьникам восьмибитные кодировки. получается на денвере ты приспопобился к его "особенностям", а реальность отличается от этой "песочницы". на хостингах, слава макаронам, никаких кодировок по умолчанию нет. всё прогрессивное человечество считает UTF-8 основной кодировкой, но если объявишь иные заголовки, будут работать они. без помех! советую сначала изменить "песочницу", чтобы она больше походила на реал и научиться работать в utf-8, затем выкладывать код на хостинг без доп. правок.
… а дальше, Максим, надо перегрузить сервер. после чего, станет возможно явно управлять кодировкой страницы — как захочешь. пожалуйста, не пиши в личку о своих затруднениях. форум для публичного обсуждения. тут все такие, стесняться некого.
Перезагрузил, в ДЕНВере все нормально отображаеться, Заливаю скрипт на хостинг импортитую БД в кодировке UtF-8 В скрипте изменил mysql_query("SET NAMES UtF-8"); В браузере не отображаеться русский, вместо текста знаки вопроса, до этого были знаки вопроса в треугольнике. В самом Денвере все отлично. На Хостинге проблемма вот такая, Просто я все время в денвере работал, и впервой решил на хостинг залить, думал просто, а тут с кодировкой не мойми что твориться
Ок. Быстро не получилось, придется немного теории изложить. Браузер и сервер обмениваются сообщениями: запрос-ответ-запрос-ответ…. В каждом сообщении присутствуют т.н. "заголовки", которые буквально на страничке не отображаются, но которые браузер использует чтобы правильно вывести контент. Каждый заголовок это отдельная строка. А после двух пустых строк начинается собственно контент. Если в заголовке указано, например: Код (Text): Content-type: image/jpeg то браузер понимает, что дальше будет картинка. А если Код (Text): Content-Type: text/html; charset=utf-8 ну ты понял Так вот, вебсервер Апачи, который входит в состав Денвера, имеет необязательную настройку AddDefaultCharset с которой сервер начинает "помогать" тебе формировать заголовки. Избавься от этой помощи и отсылай свои заголовки с указанием нужной тебе кодировки — хочешь windows1251, а хочешь utf-8, дело твоё. По приведенной ссылке описано как явно слать такой заголовок. Попробуй. И изначально я пытался донести до тебя зачем нужен SET NAMES — затем чтобы кодировка данных из базы совпадала с кодировкой прочего текста на страничке. Независимо от того, какая кодировка в базе. База умеет перекодировать свои данные на лету! Тебе просто нужно использовать одну и ту же кодировку для: - указания в заголовке Content-type (или настройке AddDefaultCharset) - статического текста на странице - настройки SET NAMES… Будь внимателен и всё получится. Вопросы? Добавлено спустя 2 минуты 36 секунд: p.s. не наступи на популярные грабли новичка: в MySQL кодировки пишутся так: CP1251, UTF8, а в html принято писать WINDOWS-1251 и UTF-8 через черточку! Синтаксис разный, смысл один.