Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.08.2007, 10:01
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 1  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
Attention MySQL & PHP & UTF-8 & Flash

Давненько здесь мне кто-то из гуру подсказал что надо юзать PHP функцию (короткое такое название у нее) которая конвертит данные (в моем случае полученные из базы) в unicode(не нашел я эту переписку). У меня почему то даже если данные в таблице мускула в unicode записаны во флеше потом при загрузке все равно некоторые символы отображаются некорректно.

спасибо.
__________________
smival.com


Последний раз редактировалось Самурай; 20.08.2007 в 14:43. Причина: конкретизирую
Старый 20.08.2007, 10:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
iconv

Старый 20.08.2007, 11:30
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 3  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
в общем конкретная ситуация.

в базу добавляются русские символы в табличку с кодировкой "cp1251_general_ci".
потом PHP забирает из базы данные и надо их корректно показать во флеше, насколько я понимаю в "UTF-8" надо, делаю так:

Код:
print iconv("windows-1251", "UTF-8", "некая строка из БД");
во флеше вопросики, тоже самое что и без iconv. т.е. видимо строка всё таки не преобразуется? но ошибку же не выводит!
__________________
smival.com

Старый 20.08.2007, 14:41
Самурай вне форума Посмотреть профиль Отправить личное сообщение для Самурай Найти все сообщения от Самурай
  № 4  
Ответить с цитированием
Самурай
Ветеран форума

Регистрация: Aug 2001
Адрес: /kiev.ua/butuzov
Сообщений: 3,045
Отправить сообщение для Самурай с помощью ICQ
1) прописная истина

Флеш воспримет только utf8

2) Если сервер отдает не utf8 выясняйте почему...

причина 1
Не правильный заголовок отсылается с сервера и указывает на другую кодировку...
укажите тип данных которые вы отсылаете паралельно указав кодировку.
PHP код:
header('Content-Type: text/html; charset=utf-8'); 
причина 2
отсылаются не утф данные
либо фиксите при помощи поточного конвертирования к примеру (не супер ксатати для перформенса)
PHP код:
iconv("CP1251""UTF-8""я крутая и модная строчка в виндоуз кодировке"
либо копаете дальше может с базой бяка? (с версии 4.1 у вас могут біть проблемы с кодировками, установите кодировку соединения)

PHP код:
mysql_query("SET NAMES utf8");

$query mysql_query("SELECT * FROM foo") or die('<b>fck</b> 'mysql_error());
header('Content-Type: text/html; charset=utf-8');
if(
mysql_num_rows($query) > 0){
  while(
$data mysql_fetch_array($query)){
     
var_dump($data);
  }

__________________
...


Последний раз редактировалось Самурай; 20.08.2007 в 14:48.
Старый 20.08.2007, 18:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Самурай, пофиг флешу на Content-Type

Старый 29.08.2007, 12:04
Ieshua вне форума Посмотреть профиль Отправить личное сообщение для Ieshua Найти все сообщения от Ieshua
  № 6  
Ответить с цитированием
Ieshua

Регистрация: May 2004
Адрес: Москва
Сообщений: 76
А во флеше:

System.useCodePage=true;

установлено?
__________________
Улыбка - понятие растяжимое...

Старый 29.08.2007, 13:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Ieshua
А во флеше:

System.useCodePage=true;

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

Старый 25.09.2007, 12:27
ulik вне форума Посмотреть профиль Отправить личное сообщение для ulik Посетить домашнюю страницу ulik Найти все сообщения от ulik
  № 8  
Ответить с цитированием
ulik
 
Аватар для ulik

Регистрация: Apr 2007
Адрес: Moscow city
Сообщений: 286
Отправить сообщение для ulik с помощью ICQ
Слушай, а тебе не проще кодировку БД UTF-8 поставить. И не будет у тебя гемороя. Не нужно будет ничего кончертить. Я так и сделал. Все отлично работает.

Код:
ALTER TABLE `имя_таблицы` CHANGE `столбец1` `столбец1` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
и так все столбцы. И все у тебя будет отлично.
__________________
Дизайн, как презерватив - каждому жмет по-своему © Я
мое: блог форум


Последний раз редактировалось etc; 25.09.2007 в 12:46.
Старый 02.10.2007, 18:07
nicksaint вне форума Посмотреть профиль Отправить личное сообщение для nicksaint Найти все сообщения от nicksaint
  № 9  
Ответить с цитированием
nicksaint

Регистрация: Oct 2007
Сообщений: 2
Отправить сообщение для nicksaint с помощью ICQ
По умолчанию SET NAMES

Код:
// Определяем версию сервера
  $query = "SELECT VERSION()";
  $ver = mysql_query($query);
  if(!$ver) exit("Ошибка при определении версии MySQL-сервера");
  $version = mysql_result($ver, 0);
  list($major, $minor) = explode(".", $version);
  // Если версия выше 4.1 сообщаем серверу, что будем работать с
  // кодировкой cp1251
  $ver = $major.".".$minor;
  if((float)$ver >= 4.1)
  {
    mysql_query("SET NAMES 'cp1251'"); // соответственно прописываем ту, что нам нужна
  }


Последний раз редактировалось nicksaint; 02.10.2007 в 18:26.
Старый 02.10.2007, 18:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
nicksaint, отредактируйте свой пост и оформите код тегами [code][/code].

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.