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
Форумы портала PHP.SU :: Версия для печати :: Хранение в БД в различных кодировках (особенно left2right языков)
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Хранение в БД в различных кодировках (особенно left2right языков)

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

1. Land - 31 Марта, 2009 - 07:18:44 - перейти к сообщению
Здравствуйте Подмигивание

Проблема в следующем. Есть тектовые данные. Различных языков - английский, русский и иврит. Последний, создает проблемы отображения, так как пишется слева на право, тем самым нарушая последовательность html тегов или bb кода.

На данный момент, в MyISAM я использую utf8_general_ci для столбцов с текстом, а для всей базы by default utf8 бинарный (bin).

Английский и русский отображаются нормально, а вот иврит - превращается в кучу вопросиков, html теги превращаются в нечто беспорядочное и страница, растягивается. Т.к. на тег <p> у меня написано CSS правило.

Хотелось бы хранить все данные в одной таблицы, лишь указывая для каждого документа идентификатор языка. Возможно ли это сделать, не создавая отдельной таблицы для каждого?

Вот привожу кусочек кода, реализации кодировки отображения в html (Но думаю это не причём, т.к. - в html всё работает)

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4.         switch ($_GET['lng'])
  5.                 {
  6.                         case '1' :
  7.                         $lnglink = '1' ;
  8.                         $charset = 'charset=utf-8';
  9.                         break;
  10.                         case '2' :
  11.                         $lnglink = '2' ;
  12.                         $charset = 'charset=windows-1251';
  13.                         break;
  14.                         case '3' :
  15.                         $lnglink = '3' ;
  16.                         $charset = 'charset=windows-1255';
  17.                         break;
  18.                         default :
  19.                         $lnglink = '1' ;
  20.                         $charset = 'charset=utf-8';
  21.                         break;
  22.                 }
  23. ?>
  24.  
  25. <meta http-equiv="Content-Type" content="text/html; <?PHP echo $charset;?>">
  26.  


Лишь замечу, что html теги в тексте, сохраняются, например text-indent (отступы) отображаются (видно по абзацам вопросиков), но дизайн, разъезжается в ширину. Очень страшно. Закатив глазки Даже скриншотом не хочу вас пугать. Подмигивание

Большое спасибо!
2. valenok - 31 Марта, 2009 - 13:26:49 - перейти к сообщению
Пепс поставь кодировку utf8_general_ci и используй везде utf-8 и всё будет.
3. Land - 31 Марта, 2009 - 15:39:03 - перейти к сообщению
Радость Ха-ха Радость
Спасибо мэн! Подмигивание Закатив глазки

 

Powered by ExBB FM 1.0 RC1