Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: что-то с кодировкой - ???????
 
 автор: t3ma   (05.08.2008 в 12:53)   письмо автору
 
 

все таблицы в срравнениее cp1251_general_ci
на сайте через форму пишу русскими буквами слово проверка.. отображается на сайте так: ??????? и в базе тоже самое.
если в базе допустим наспиано русскими: прикольная фотка...
то на сайте это отображается так: прикольная фотка...
подскажите как это поправить

  Ответить  
 
 автор: Roo$   (05.08.2008 в 13:05)   письмо автору
 
   для: t3ma   (05.08.2008 в 12:53)
 

прикольная фоткР- это кажись utf-8 кодировка.. В браузере укажите ее.. и будет все ок.
Сам мучился на днях..с кодировкой... (но у меня прога поддерживала ток cp1251) то решил проблему так..
iconv('исходная кодировка', 'нужная кодировка', 'строка')

  Ответить  
 
 автор: Zend72   (05.08.2008 в 13:16)   письмо автору
 
   для: t3ma   (05.08.2008 в 12:53)
 

Попробуйте после того как присоединитесь к базе данных выполнить запрос:
mysql_query("SET NAMES 'cp1251'");

  Ответить  
 
 автор: t3ma   (05.08.2008 в 13:23)   письмо автору
 
   для: Zend72   (05.08.2008 в 13:16)
 

это я уже пробовал.. неканает

  Ответить  
 
 автор: Zend72   (05.08.2008 в 13:29)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:23)
 

Если данные в базе действительно в кодировке CP1251 то еще как канает =)

  Ответить  
 
 автор: t3ma   (05.08.2008 в 13:33)   письмо автору
 
   для: Zend72   (05.08.2008 в 13:29)
 

мой касяк.. теперь выводит из базы нормуль..
а вот добавляется в базу так: ??????

  Ответить  
 
 автор: Zend72   (05.08.2008 в 13:34)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:33)
 

А как происходит добавление в базу? Как выглядит этот скрипт?

  Ответить  
 
 автор: t3ma   (05.08.2008 в 13:42)   письмо автору
 
   для: Zend72   (05.08.2008 в 13:34)
 


вот скрипт..
<?php
$id 
addslashes(strip_tags($_POST["id"]));
  
$comment addslashes(strip_tags($_POST["comment"]));
  
$c_date date("Y-m-d H:i:s");

  
$add_comment = @mysql_query("INSERT INTO gl_comments VALUES (0, $id$user_id, '$comment', '$c_date')");
?>

я в начале скрипта вставляю файл который работает с кодировкой utf-8 и из этого в базу добавляется вопроссики.. если его убрать будет все нормально... но мне его уберать не надо

  Ответить  
 
 автор: Zend72   (05.08.2008 в 13:50)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:42)
 

> я в начале скрипта вставляю файл который работает с кодировкой utf-8 и из этого в базу
Вот он корень зла... Тогда возможно лучше кодировку в базе данных поменять на utf-8.
Вообще все зделать в utf-8 и не париться!

  Ответить  
 
 автор: t3ma   (05.08.2008 в 13:56)   письмо автору
 
   для: Zend72   (05.08.2008 в 13:50)
 

а нельзя сделать конфертацию перед добавление в базу текста в cp1251 ?
как-нибудь так:


 iconv ('utf8_bin', 'windows-1251',  $comment);
  $add_comment = @mysql_query("INSERT INTO gl_comments VALUES (0, $id, $user_id, '$comment', '$c_date')");

только так неработает

  Ответить  
 
 автор: Zend72   (05.08.2008 в 14:02)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:56)
 

Конертировать перед добавлением можно (уверен на 90%). Только зачем? Если все будет в utf-8 то и задумываться о конвертировании не надо будет.

  Ответить  
 
 автор: Zend72   (05.08.2008 в 14:08)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:56)
 

Помоему вот так:
$comment = iconv('UTF-8', 'windows-1251',  $comment);


______________________
Вот проверил:

<?php 
$comment 
'текст';
echo 
$comment.'<br />';
$comment iconv('windows-1251''UTF-8',  $comment);
echo 
$comment.'<br />';
$comment iconv('UTF-8''windows-1251',  $comment);
echo 
$comment;
?>

Но всетаки лучше перевести все в UTF-8 и ничео не надо будет конвертировать...

  Ответить  
 
 автор: DDK   (05.08.2008 в 13:18)   письмо автору
 
   для: t3ma   (05.08.2008 в 12:53)
 

Попробуйте после mysql_connect() дописать это:

mysql_set_charset('CP1251');

  Ответить  
 
 автор: t3ma   (05.08.2008 в 13:28)   письмо автору
 
   для: DDK   (05.08.2008 в 13:18)
 

мой касяк.. теперь выводит из базы нормуль..
а вот добавляется в базу так: ??????

  Ответить  
 
 автор: cheops   (08.08.2008 в 13:56)   письмо автору
 
   для: t3ma   (05.08.2008 в 13:28)
 

У вас в приложении функция mysql_connect() одна или несколько?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования