Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Добавление в бд - заменяется другим символом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
hatsub
Отправлено: 26 Июля, 2011 - 12:15:53
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




если добавить текст с textarea в бд в поле типа text, то все "ш" превращаются в "�?"
если прописать mysql_escape_string то все "ш" опять превращаются в "�?"
Причем "Ш" (большая) не заменяется!
В чем дело?
Кодировка везде utf8 (но дело не в ней т.к. заменяется только один символ)
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Июля, 2011 - 12:29:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




hatsub пишет:
Кодировка везде utf8

И в самом подключении тоже?

А колэйшн случаем не utf8_bin ?
Должно бы utf8_general_ci как не зависимая от регистра, раз уж тип поля TEXT.
 
 Top
LIME
Отправлено: 26 Июля, 2011 - 12:31:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




hatsub вы применяете к тексту какие-либо строковые ф-ции?
типа substr()
 
 Top
hatsub
Отправлено: 26 Июля, 2011 - 12:38:10
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




никаких функций не применяю, кодировка именно utf8_general_ci, SET NAMES "utf8" нужно в запрос на добавление вставить?

CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO ... VALUES (...) SET NAMES 'utf8'

?

(Отредактировано автором: 26 Июля, 2011 - 12:40:44)

 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Июля, 2011 - 12:40:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




hatsub пишет:
SET NAMES "utf8"
Cразу после коннекта к базе обычным запросом - будет действовать до конца активного текущего соединения.
 
 Top
hatsub
Отправлено: 26 Июля, 2011 - 12:45:08
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




все равно тоже самое получается:

CODE (SQL):
скопировать код в буфер обмена
  1. mysql_select_db('...', mysql_connect('localhost','...','....'));
  2. mysql_query('SET NAMES "utf8"');


результат: "����� ���� "
Причем такая проблема именно с типом поля text
сейчас если зайти через phpmyadmin в бд, то там "ш" предстает в нормальном виде.

(Отредактировано автором: 26 Июля, 2011 - 12:57:31)

 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Июля, 2011 - 12:56:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




hatsub пишет:
����� ����
Уже больше похоже на правду - проверяйте тип сравнения у самой базы,у таблицы и у полей.
Смотрите чтоб было: Type = MYISAM

Проверяйте заголовки которые отправляете браузеру.
Проверяйте кодировку файлов.
 
 Top
hatsub
Отправлено: 26 Июля, 2011 - 13:02:54
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




таблица в бд:

тип | сравнение
------------------
text | utf8_general_ci

текст в таблице предстает в нормальном виде :"шшшш"

php файл(сам файл хранится в unix utf8):
PHP:
скопировать код в буфер обмена
  1.  
  2. header('Content-type: text/html; charset=utf-8');
  3. mysql_select_db('....', mysql_connect('localhost','.....','.....'));
  4. mysql_query('SET NAMES "utf8"');
  5.  
  6. mysql_query("INSERT INTO ... VALUES ()");


В коде html страницы meta тег с кодировкой не указан.

уже при выводе из бд "ш" искажается на "�"

(Отредактировано автором: 26 Июля, 2011 - 13:03:31)

 
 Top
Давит
Отправлено: 26 Июля, 2011 - 13:07:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 147
Дата рег-ции: Май 2011  


Помог: 2 раз(а)




hatsub пишет:
Кодировка везде utf8


не может быть. проверьте еще раз
 
 Top
hatsub
Отправлено: 26 Июля, 2011 - 13:08:23
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




сообщение выше http://forum.php.su/topic.php?fo...74574#1311674574
(Добавление)
теперь вообще все русскоязычные сиволы стали такими

���� ����������� ���-������������
(Добавление)
iconv('cp1251','utf-8',@mysql_result($up,$i,"post")); вставил это и проблема решилась
 
 Top
Champion Супермодератор
Отправлено: 26 Июля, 2011 - 17:53:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




hatsub пишет:
iconv('cp1251','utf-8',@mysql_result($up,$i,"post")); вставил это и проблема решилась
Значит всё-таки данные из БД в 1251 возвращались.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB