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

Форум PHP

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

 

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

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

тема: utf-8 и strtolower
 
 автор: Дмитрий Смаль   (07.08.2009 в 19:52)   письмо автору
 
 

Здравствуйте!

кодировка текста utf-8
не работают некоторые строковые функции, например strtolower

когда была кодировка cp1251
всё решалось setlocale(LC_ALL, 'ru_RU.cp1251');

  Ответить  
 
 автор: Valick   (07.08.2009 в 19:57)   письмо автору
 
   для: Дмитрий Смаль   (07.08.2009 в 19:52)
 

mb_strtolower?
поиск

  Ответить  
 
 автор: Дмитрий Смаль   (08.08.2009 в 19:35)   письмо автору
 
   для: Valick   (07.08.2009 в 19:57)
 

mb_strtolower в денвере не работает

выход нашёл str_replace

  Ответить  
 
 автор: а-я   (08.08.2009 в 20:21)   письмо автору
 
   для: Дмитрий Смаль   (08.08.2009 в 19:35)
 

чтоб работал надо установить PHP 5: дополнительные модули

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

  Ответить  
 
 автор: Дмитрий Смаль   (08.08.2009 в 20:17)   письмо автору
 
   для: Valick   (07.08.2009 в 19:57)
 

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

нарыл в интернете что надо включить на сервере библиотеку mbstring

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

пробовал вот такую штуку
$str = iconv("UTF-8", "cp1251", "$str");
а потом после сроковых операций обратно
$str = iconv("cp1251", "UTF-8", "$str");
но чего-то оно так не получается

  Ответить  
 
 автор: Valick   (08.08.2009 в 20:23)   письмо автору
 
   для: Дмитрий Смаль   (08.08.2009 в 20:17)
 

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

  Ответить  
 
 автор: а-я   (08.08.2009 в 20:30)   письмо автору
 
   для: Дмитрий Смаль   (08.08.2009 в 20:17)
 

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

сейчас есть VDS, которые дешевле некоторых хостингов. что хотите то и подключаете!
конечно, у VDS есть свои минусы (ресурсы), тут уж сами думайте!)

  Ответить  
 
 автор: Дмитрий Смаль   (09.08.2009 в 15:46)   письмо автору
 
   для: Дмитрий Смаль   (07.08.2009 в 19:52)
 

Ещё такой момент, решил в этой теме написать.

Все страницы сохранены в UTF-8
вначале страниц стоит header('Content-type: text/html; charset=UTF-8');

В база данных MySQL тоже всё в UTF-8 (сопоставление, язык, таблицы и столбцы)
после соединения с базой для подстраховки вызываю
mysql_query("SET NAMES 'UTF-8'");
mysql_query("SET CHARACTER SET 'UTF-8'");

всё это на локале (стоит денвере)

сначала заметил что две буквы "ш" и большую "И" чёто глючит
посмотрел в базу данных - а там везде кракозябры главаня
хотя с базы достает текст нормально (проблема с буквами ш и большой и, может ещё какие незнаю)

если же руками прямо в майадмине вписать поле, то на сайте будут иероглифы (выглядит как битый бинарный символ)

вот не могу понять что за херня

проверял POST данные, которые заносятся в базу - UTF-8
если прямо перед добавлением в базу сделать
$post[$key] = iconv("UTF-8", "cp1251", "$post[$key]");

то в самой базе всё нормально отображается, на сайте кракозябры

я так понял что проблема именно с базой

может кто знает как это лечить?

(поставил на локал форум пхпбб3 - он в утф - всё нормально и в базе и на сайте)

  Ответить  
 
 автор: Trianon   (09.08.2009 в 19:43)   письмо автору
 
   для: Дмитрий Смаль   (09.08.2009 в 15:46)
 

SHOW CREATE DATABASE ИмяБД ;


SHOW CREATE TABLE ИмяТаблицы ;


SHOW VARIABLES LIKE 'CHAR%' ;

Последний - после процесса установки соединения и настройки кодировки

  Ответить  
 
 автор: .....   (10.08.2009 в 02:08)
 
   для: Дмитрий Смаль   (09.08.2009 в 15:46)
 

>mysql_query("SET NAMES 'UTF-8'");
должно быть 'utf8'

  Ответить  
 
 автор: Дмитрий Смаль   (10.08.2009 в 09:56)   письмо автору
 
   для: .....   (10.08.2009 в 02:08)
 

:)
вот спасибо!

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

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