![]() |
кодировка базы данных
есть база она в CP1251
в ней есть русский текст, делаю к ней запрос из PHP вместо текст выводятся вопросики. а если смотреть из PMA то текст показывается нормально, что нужно сделать чтобы у меня тоже он отображался правильно? |
Вложений: 1
Надо кодировку connect-а менять на нужную.
инфа PMA вроде тоже так делают (смотри рисунок) Я вообще везде UTF-8 использую |
Я тоже с этим мучаюсь. :( На серве БД в UTF-8 а на локалхосте СР1251... =\ В общем вытянутый файлик с локалхоста открываю через блокнот и сохраняю также только в "Юникод"е.... И после тыкаю тот скрипт на сервер.. Ну и обратно таким же макаром. :)
|
Можна попробовать сделать так.
Код:
ALTER TABLE table1 CONVERT TO CHARACTER SET cp1251_general_ci |
Зачем так заморачиватся?
$db=mysql_pconnect('hostname','usrname','password'); mysql_select_db('DBName',$db); mysql_query("SET NAMES cp1251"); И всё работает =) |
Интересное дело получается.. :) Как грит rus-4-ever получается. Но когда смотрю через cmd->mysql при любой кодировке (пробЫвал командами set names/set character set) выдают кракозябру. Подскажите как перевести всё на один тип кодировки. (Я имею ввиду клиентскую и серверную части.) Насколько я понимаю там есть три типо этих кодировок.. Первая серверная, вторая входящие переменные, и третья исходящие...
|
Порылся в гугле в общем добился "вроде какого" результата.. Только подскажите вот что. В клиенте (EMS 4.1) показывает нормально (Charset client стоит UTF8), в коде не совсем (приходится писать "set names utf8"), а в cmd->mysql бракозябра (но радует что не вопросы, т.к. видимо кодировку правильно ввёл). В комадной строке писал "set names utf8", "set charset utf8" не помогло... Какие есть варинты... Хочу что бы в клиенте и в командной строке отображало одинково (utf8 ну или cp1251), и что б в коде (php) не надо было писать "set names ***". Как это всё сделать?
ЗЫ: Ведь знает кто то.. Подскажите.. В манке на dev.mysql.com ответа не нашёл. :( |
Веселуха блин.. Сбросил Wizard'ом настройки скуля, вношу в таблицу (всё по дефолту)... Но вот в браузерах (Осёл, Опера) вижу только "???????????" и что это такое? О.о Короче интересно всё как то...
ЗЫ: Опять же когда в коде (php) пишут "SET NAMES ...." показует нормально... РАССКАЖИТЕ ЧТО У МЕНЯ ТУТ ПРОИСХОДИТ! И как заставить выводить (хоть в какой нить адекватной кодировке) инфу под браузер. Плз! :( |
советую в качестве базы для своих разработок использовать такую КМС как Joomla, если во всех своих скриптах использовать подключение основных файлов джумлы таких как config, globals и joomla, то никаких проблем с кодировками быть не должно и всё прекрасно будет сохраняться и читаться в utf8, вообще завязывайте вы с использованием отечественных кодировок, utf8 это универсально и просто.
Пример кстати такой идеальной работы можно поглядеть здесь . |
Ситуация такая. База нужна для веб сайта, и в ней записи на русском языке. При создании базы данных указывал опцию: CHARACTER SET cp1251. Создал файл с данными для одной из таблиц базы в кодировке cp1251. Добавляю его в таблицу с помощью LOAD DATA INFILE.... В терминале смотрю таблицу:
Код:
SELECT * FROM makers; Код:
????.?. Код:
ALTER TABLE makers CONVERT TO CHARACTER SET cp1251 COLLATE cp1251_general_ci; |
Прошу прощения, нашел в чем дело! Просто в клиенте надо было указать кодировку:
Код:
mysql>SET NAMES 'cp1251' |
вот так всегда, решение оказалось простым, а чтоб к нему прийти пришлось столько всего вычитать.
И вообще хватит уже в разнобой с кодировками работать, берём одну на всех UTF-8 и всё, хотим на бурятском хотим на немецком пишем, главное понять как с этой кодировкой правильно работать. Для примера у себя на сайте http://www.7hitov.ru я использую именно UTF-8 и не хочу от неё отказываться. Вобщем всем рекомендую UTF-8 |
Время: 10:50. |
Время: 10:50.
© OSzone.net 2001-