|
|
|
| Почему-то при вводе в гостевую сообщения происходит следующее: если ввести на английском, то сообщение отображается корректно, но если же на русском, то О УЖАС! вместо каждого русского символа отображается символ вопроса | |
|
|
|
|
|
|
|
для: dim
(02.08.2006 в 16:01)
| | гостевая на БД?
если да, то mysql_query("SET NAMES 'cp1251'"); вам поможет | |
|
|
|
|
|
|
|
для: dim
(02.08.2006 в 16:01)
| | Если в базе с кодировкой не поможет, или по другим каким либо причинам не получится, то можно поробовать urlencode(); И urldecode(); | |
|
|
|
|
|
|
|
для: Vit-j
(02.08.2006 в 19:21)
| | Не... это немного из другой оперы. | |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 20:36)
| | Loki, не уточните кое-что?
скажем, у меня есть файл index.php, куда надо ввести, к примеру, только.. имя.
Передаем через форму post-ом переменную $name в файл proc.php, там же вносим в базу в таблицу Name, в поле nm переменную $name, полученную из index.php, ну а потом, если все прошло успешно, переходим в index.php, где и выводим необходимые сообщения (в зависимости от значения $action).
Так вот на каком этапе и где именно надо выполнить запрос mysql_query("SET NAMES 'cp1251'"); и, если можно, немного подробнее об написанном выражении | |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 20:36)
| | valenok, спасибо - все работает!! (модератор стер: "Сразу после подключения к бд..")
а не расскажите, почему так? что это выражение значит? | |
|
|
|
|
|
|
|
для: dim
(11.08.2006 в 14:56)
| | Интересно что же стер модератор | |
|
|
|
|
|
|
|
для: buka
(11.08.2006 в 16:36)
| | стер "Сразу после подключения к бд.." - так сделал и все заработало!!..(кириллица)
неплохо бы узнать значение этого выр-ия. Чувствую, что элементарно, но мне не встречалось..( | |
|
|
|
|
|
|
|
для: dim
(12.08.2006 в 14:35)
| | mysql_query("SET NAMES 'cp1251'");
"говорит" MySQL чтоб она поменяла кодировку 866 (DOS) на кодировку cp1251(Windows). | |
|
|
|
|
|
|
|
для: hawk
(12.08.2006 в 23:36)
| | А зачем тогда нужно DEFAULT CHARSET? Или это кодировка, в которой данные храняться, а SET NAMES - в которой выводятся? Что-то как-то сложно... | |
|
|
|
|
|
|
|
для: Киналь
(12.08.2006 в 23:51)
| | DEFAULT CHARSET - говорит в какой кодировке данные будут храниться в таблице, а
SET NAMES - говорит в какой кодировке будет идти диалог клиента и сервера.
Т.е. если у вас DEFAULT CHARSET определено как cp1251, а SET NAMES в koi8-r, то добавление информации в кодировке koi8-r ни к каким конфликтам не приведёт - в таблицу данные лягут перекодированные в cp1251. | |
|
|
|
|
|
|
|
для: cheops
(13.08.2006 в 01:00)
| | Так и думал=) Спасибо, буду знать! | |
|
|
|
|
|
|
|
для: Киналь
(13.08.2006 в 20:40)
| | В продолжение темы.. У меня в таблице есть поле film_title. Там как вы догадываетесь названия фильмов. Так вот когда я сортирую по этому полю(ORDER by film_title) Мне выдаёт совсем не по алфавиту названия..... mysql_query("SET NAMES 'cp1251'"); Пробовал. Получаю знаки вопроса) Что делать?
Вот настройкий мускула и пхпадмина
character set client utf8
(Global value) latin1
character set connection utf8
(Global value) latin1
character set database latin1
character set results utf8
(Global value) latin1
character set server latin1
character set system utf8
character sets dir /usr/local/share/mysql/charsets/
collation connection utf8_unicode_ci
(Global value) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
|
И ещё вопрос. Как увидеть данные из БД на русском? Я так понимаю надо поставить правильно споставление, но вот или не на те кодировки менял или что?) | |
|
|
|
|
|
|
|
для: vovik_sumy
(16.08.2006 в 15:14)
| | Где дело происходит на локальной машине или на внешнем сервере, который вы не имеете возможности конфигурировать? | |
|
|
|
|
|
|
|
для: cheops
(16.08.2006 в 16:02)
| | На удалённой машине. Но я могу попросить чтото изменить... Может поймут и исправят. А что можно изменить? | |
|
|
|
|
|
|
|
для: vovik_sumy
(16.08.2006 в 17:41)
| | Это российский хостер или зарубежный? Нужно в my.ini или my.cnf добавить директиву
default-character-set=cp1251
|
в секцию [mysqld]. | |
|
|
|
|
|
|
|
для: cheops
(16.08.2006 в 22:28)
| | Спасибо!
Зарубежный...
Я конечно спрошу, а можно без этого? Иной путь есть? | |
|
|
|
|
|
|
|
для: vovik_sumy
(17.08.2006 в 11:01)
| | Зарубежный пожалуй ради вас руссифицироваться не станет :))) Вам придётся явно прописывать кодировку и сортировку таблиц при их создании. | |
|
|
|
|
|
|
|
для: cheops
(17.08.2006 в 11:35)
| | Значит мне чтобы сейчас сделать сортировку по алфавиту просто написать SET NAMES cp1251 Перед записью в таблицу?? Я правильно понимаю? Или уже ничего не поможет?:-) | |
|
|
|
|
|
|
|
для: vovik_sumy
(17.08.2006 в 18:54)
| | Да, при этом сама таблица должна иметь кодировку cp1251 по умолчанию, а не latin1, если у вас таблица имеет по умолчанию кодировку latin1, её следует изменить при помощи запроса
ALTER TABLE tbl DEFAULT CHARSET=cp1251 COLLATE cp1251_general_ci;
|
| |
|
|
|
|
 32.9 Кб |
|
|
для: cheops
(17.08.2006 в 22:05)
| | Сделал именно так. А теперь отображаются знаки вопроса вместо русского текста. ( что видно во вложении) Как быть? Collation столбиков все ещё в latin1_swedish_ci. Может это быть причиной? | |
|
|
|
|
 9.5 Кб |
|
|
для: vovik_sumy
(18.08.2006 в 13:11)
| | А сама обычная выборка с ORDER by name даёт такое
1????
????
??????
??????
??????
акрилловые
Комлектующие разные
Комлектующие для ванн
Комлектующие для душевых кабин
деревянные
чугунные
|
Врочем в БД почти тоже самое) | |
|
|
|
|
|
|
|
для: vovik_sumy
(18.08.2006 в 13:19)
| | Удалите знаки вопроса, если дальше будет использовать SET NAMES и правльную кодировку самой таблицы - они больше не появятся, с сами знаками вопроса уже ничего сделать нельзя - текст искажён не обратимо. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2006 в 15:36)
| | Я добавлял эти строки через пхпмайадмин. Сейчас попробую через скрипт.
..
Попробовал. Знаки вопроса решили не исчезать) Новости с SET NAMES (поставил после mysql_connect) и выполнив ALTER стали знаками вопроса....
Помогло только когда я для каждого поля в конструкторе таблиц задал кодировку.... Но данные переливал заново. | |
|
|
|
|
|
|
|
для: vovik_sumy
(18.08.2006 в 16:16)
| | ALTER TABLE нужно выполнять один раз в жизни таблицы, вообще до любых изменений. SET NAMES следует выполнять один раз после соединения с базой данных. При выводе информации SET NAMES тоже следует использовать. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2006 в 19:30)
| | Cheops,
Сегодня говорил с хостером. Оказывается на нём целиком русские ресурсы. И до сих пор они сами не знают как правильно настроить БД. Может подскажите как им помочь? :-) | |
|
|
|
|
|
|
|
для: vovik_sumy
(19.08.2006 в 01:11)
| | Пусть пропишут в my.ini в секции [mysqld]
[mysqld]
default-character-set=cp1251
init_connect="SET NAMES 'cp1251'"
|
| |
|
|
|
|
|
|
|
для: cheops
(19.08.2006 в 11:30)
| | Казалось бы должно помочь, а не помогло. Мне сказали, что вновь созданные БД были со знаками вопрос(где рус.яз). | |
|
|
|
|
|
|
|
для: vovik_sumy
(22.08.2006 в 00:53)
| | Это должно действовать только на новые базы данных и после перезагрузки сервера. | |
|
|
|