Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировками в статьях. 
:(
    Опции темы
EgorTheBlade
Дата 27.8.2010, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Добрый вечер.При чтении статьи из бд на сайт выводятся ????(utf8).При другом раскладе выводятся '?' в конце статьи.
Какую использовать кодировку?windows?
И как лучше добавлять в статьи картинки?Есть способ через бд?

Это сообщение отредактировал(а) EgorTheBlade - 27.8.2010, 19:25
PM MAIL Skype   Вверх
bars80080
Дата 27.8.2010, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



кодировка - штука интересная и полезная, если умеешь с ней обращаться.
вкратце, надо правильно изначально заливать данные на сервер, и правильно считывать. выглядит это так:

сразу после подключения к БД мы пишем запрос:
SET NAMES `utf8`
этим мы говорим, что наш сайт работает в UTF-8
после чего мы вставляем данные запросами INSERT, чётко осознавая, что у нас на сайте на самом деле кодировка UTF-8

при чтении - аналогично, устанавливаем set names и отдаём в браузер данные, чётко зная, что на сайте именно UTF-8

если мы работаем с другой кодировкой, то соответственно везде меняем UTF-8 на другое слово везде


все дополнительные вопросы только после прочтения этого: Проблемы с кодировкой в MySQL версий 4.1+
PM MAIL WWW   Вверх
EgorTheBlade
Дата 28.8.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Я прописал вручную кодировку 
Код


CREATE DATABASE `news` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE `news`;

--
-- Table structure for table `news`
--

CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) DEFAULT NULL,
  `news` text,
  `author` varchar(50) DEFAULT NULL,    
  `date` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=41 ;


При  добавлении через phpmyadmin в поля руский текск и открытии сайта   выводится"??????".
Лезть в my.ini?
Статья дала много полезной информации.Но главная проблема осталась.

PM MAIL Skype   Вверх
gta4kv
Дата 28.8.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(bars80080 @ 27.8.2010,  19:41)
все дополнительные вопросы только после прочтения этого: Проблемы с кодировкой в MySQL версий 4.1+

там есть ответ на вопрос.
PM MAIL   Вверх
bars80080
Дата 28.8.2010, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(EgorTheBlade @  28.8.2010,  15:09 Найти цитируемый пост)
При  добавлении через phpmyadmin в поля руский текск и открытии сайта   выводится"??????".

а вы контролируете phpmyadmin? каким образом вы выставляете в нём кодировку?

напишите собственный простенький интерфейс добавления данных на пять строчек кода
PM MAIL WWW   Вверх
EgorTheBlade
Дата 28.8.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Я писал и руками как указывал выше,так и через phpmyadmin - выставлял кодировку и сравнение.
Какой интерфейс?Другого выхода нет?
я пробовал mysql_query(SET NAMES...).Вы про ето?
Почему не работает через SET NAMES  и Default CHarset?
Я создал корректный файл-он читает utf-8 но теперь он не хочет его импортировать в phpmyadmin.Просто висит.
Код

CREATE DATABASE `news` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE `news`;
SET NAMES utf8;
-- --------------------------------------------------------
--
-- Table structure for table `news`
--

CREATE TABLE IF NOT EXISTS `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `news` text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
  `author` varchar(1000) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `date` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=61 ;




Это сообщение отредактировал(а) EgorTheBlade - 28.8.2010, 20:12
PM MAIL Skype   Вверх
bars80080
Дата 28.8.2010, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(EgorTheBlade @  28.8.2010,  19:58 Найти цитируемый пост)
Я писал и руками как указывал выше

ммм, не заметил.
Цитата(EgorTheBlade @  28.8.2010,  19:58 Найти цитируемый пост)
Какой интерфейс?Другого выхода нет?

я говорю о том, что написать просто короткий скрипт для примера. посмотреть, работает ли он корректно

в духе:

Код

<?php
error_reporting(E_ALL);

mysql_connect(....);
mysql_query('SET NAMES `utf8`');
mysql_select_db(...);


$text = 'здесь необходимые нам данные. текст статьи, может быть. но при этом мы уверены, что весь текст этого скрипта тоже находится в кодировке utf-8';

$text = mysql_real_escape_string($text);

$sql = 'INSERT INTO `news` (`news`) VALUES ("'.$text.'")';
$q = mysql_query($sql);

header('Content-type: text/html; charset=utf-8');
var_dump($sql);
echo mysql_error().'<br />';

$sql = 'SELECT * FROM `news` ORDER BY `id` DESC LIMIT 1';
$q = mysql_query($sql);
//echo mysql_error().'<br />';

while(false !== ($f = mysql_fetch_assoc($q))) {
    //echo mysql_error().'<br />';
    echo 'row: <br />';
    var_dump($f);
}

?>

посмотреть, выдаст ли он текст в отображаемом виде. посмотреть у браузера при этом, какая кодировка определилась

если не корректно будет, тогда у вас какие-то проблемы с базой. начнём разбираться с ней.
если будет корректно, значит вы просто не можете заставить phpmyadmin работать как следует. но это уже семечки
PM MAIL WWW   Вверх
EgorTheBlade
Дата 28.8.2010, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Броузер принимает UTF8.
Как вы показали код я делал.
А что может быть не так с бд?
Я делаю на 2ух машинах.Win 7 И Win XP
Через cmd пробовал -результата не дало.

Это сообщение отредактировал(а) EgorTheBlade - 28.8.2010, 20:23
PM MAIL Skype   Вверх
bars80080
Дата 29.8.2010, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(EgorTheBlade @  28.8.2010,  20:21 Найти цитируемый пост)
Броузер принимает UTF8.
Как вы показали код я делал.
А что может быть не так с бд?

причём здесь БД? вы данный пример реализовали и получили правильный вывод данных? без каких-либо вопросиков или кракозябр?

тогда БД вообще не причём, всё работает как часы, за исключением связки человек+phpmyadmin
PM MAIL WWW   Вверх
EgorTheBlade
Дата 29.8.2010, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Как определить в какой кодировке сам файл?Чтобы его подключить через phpmyadmin.
Почему данный файл не подключается через phpmyadmin к сайту?
P.s ?Броузер показывает что страница в utf8 но ?????? остались.

Это сообщение отредактировал(а) EgorTheBlade - 29.8.2010, 09:27

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  news.sql 55,69 Kb
PM MAIL Skype   Вверх
EgorTheBlade
Дата 29.8.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Обнаружилось что один из файлов sql нерабочий.Перекопирование данных в новый файл разрешило проблему импортирования в phpmyadmin и на сайт.Но на сайте выводятся "??????"
PM MAIL Skype   Вверх
EgorTheBlade
Дата 29.8.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 5.12.2009

Репутация: нет
Всего: -1



Заработало при ручном запросе в Php коде.Спасибо за помощь.
Проблема была в битых файлах и моей невнимательности.
PM MAIL Skype   Вверх
andrus000
Дата 29.8.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 14.10.2007

Репутация: нет
Всего: нет



Как-то давно... подобную проблему  решил этим способом, в месте изначального подключения к БД: 
Код

mysql_connect("$hostname","$username","$pasww")or die('Not connected : ' . mysql_error());
mysql_select_db("$dbname")or die('Not Selected Data-base : ' . mysql_error());
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.