На Windows с этим проблем не было.. т.е. всё отображалось нормально как в MySQL так и в PHP файла...
На Linux проблема с кодировками..Подскажите пожалуйста какие должны быть кодировки php файлов,и БД MySQL .. Думал повторить как на Windows но корректно выводится текст с БД или текст в PHP...
Кириллица в MySQL
На Windows с этим проблем не было.. т.е. всё отображалось нормально как в MySQL так и в PHP файла...
На Linux проблема с кодировками..Подскажите пожалуйста какие должны быть кодировки php файлов,и БД MySQL .. Думал повторить как на Windows но корректно выводится текст с БД или текст в PHP...
Вступление:
При миграции с винды я просто перенес и базы и скрипты простым копированием.
1. При создании базы можно указать кодировку
2. При генерации страницы в метатеге необходимо указать правильную кодировку
3. Еще вроде средствами апача можно заставить насильно отдавать страницы в определенной кодировки, но врят ли у вас такая настройка "активирована"
Соответственно вна должна быть все равно какая, но везде одинаковая.
Итак: как создавали БД?
При создании базы данных выбираю:
1.Сравнение - cp1251_general_ci
2.Сопоставление соединения с MySQL:cp1251_general_ci
PHP файл кодировка WINDOWS-1251 (только что через gedit создавал)
В PHP кирилица нормально отображается,в таблицах БД тоже читабельно ,а вот если выводить с данных с БД в окно браузера через PHP тогда "??????"
При создании базы данных выбираю:
Саму базу скриптом создавали?
Заглянуть бы в скрипт. Хотябы: начало скрипта; команда создания таблицы имеющей текстовые поля. И одну строку вставки данных....
нет я через phpMyAdmin...
вот код выборки из базы..
<?PHP
if ($db = mysql_connect("localhost","root","")) {
mysql_select_db("w",$db);
}
else {
echo mysql_error();
exit;
}
$result = mysql_query("SELECT * from df",$db);
$row = mysql_fetch_array($result);
do
{
echo $row['aaa']."<br><br>";
}
while ($row = mysql_fetch_array($result));
?>
извиняюсь за название бд,таблиц и полей )) я для теста создавал)
нет я через phpMyAdmin...
....
извиняюсь за название бд,таблиц и полей )) я для теста создавал)
Сделайте в phpMyAdmin экспорт всей базы в скрипт (она ж пока маленькая?) и покажите
вот :)
-- phpMyAdmin SQL Dump
-- version 3.2.5
-- http://www.phpmyadmin.net
--
-- РҐРѕСЃС‚: localhost
-- Время создания: Мар 11 2010 г., 19:00
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.6-1+lenny6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- База данных: `phptest`
--
-- --------------------------------------------------------
--
-- Структура таблицы `quotes`
--
CREATE TABLE IF NOT EXISTS `quotes` (
`id` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL,
`login` varchar(11) NOT NULL,
`rating` int(11) NOT NULL,
`text` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;
--
-- Дамп данных таблицы `quotes`
--
INSERT INTO `quotes` (`id`, `date`, `login`, `rating`, `text`) VALUES
(1, '2010-03-08 02:27:00', 'admin', 2, 'Привет!\r\nКак дела?');
-- --------------------------------------------------------
--
-- Структура таблицы `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`date` int(11) NOT NULL,
`login` int(11) NOT NULL,
`name` int(11) NOT NULL,
`password` int(11) NOT NULL,
`mail` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;
--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` (`id`, `date`, `login`, `name`, `password`, `mail`) VALUES
(1, 0, 0, 0, 0, 0),
(2, 0, 0, 0, 0, 0);
Скрипта нет,просто вывод и ввод данных =) Я только учусь )Как выводил данные можно посмотреть выше =)
В php-файле можете добавить такую конструкцию:
<html>
<head>
<META http-equiv="content-type" content="text/html; charset=WINDOWS-1251">
</head>
</html>
Все данные будут отображаться в ср1251 кодировке. Я обычно в конце скриптиков добавляю =)
Все данные будут отображаться в ср1251 кодировке. Я обычно в конце скриптиков добавляю =)
Как я понял текст из скриптов выводится нормально, корежится только взятый из БД....
ЗЫ блин у меня такое было, как решил хоть убей не вспомню..........
Все данные будут отображаться в ср1251 кодировке. Я обычно в конце скриптиков добавляю
не помагает..делал так..
Как я понял текст из скриптов выводится нормально, корежится только взятый из БД....
да-да,Вы правы.
В таком случае, мне кажется, вам может помочь вот этот ресурс
http://www.linux.by/wiki/index.php/FAQ_PHP_MySQL_charset
читал-читал.. там написано то что вы и говорили..кодировки php и таблиц MySQL должны совпадать :|
Ура! Разобрался... всё перекодировал в utf8 перед запросом к БД прописывал
mysql_query("SET NAMES 'UTF8'");только теперь возник не большой вопрос..Стоит ли писать с исп.кодировки UTF-8 ? Так как на Windows я использ. cp1251
совет забудьте про cp1251 как страшный сон...
совет забудьте про cp1251 как страшный сон...
с удовольствием :) интересно узнать почему?
Чтобы не было совместимости с другой частью мира
one_man_showdc в смысле? значит лучше всё таки cp-1251? :|