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

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

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

Регистрация: Nov 2006
Сообщений: 155
По умолчанию Как определить кодировку?

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

Мне это необходимо, чтобы передать параметр в функцию iconv()

iconv(???, "UTF-8", $someVar);

Старый 07.06.2007, 13:10
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 2  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
В такой постановке вопроса - никак.
А можно узнать, что привело к такому вот положению вещей ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 07.06.2007, 13:33
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 3  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Цитата:
Сообщение от Skubent
В такой постановке вопроса - никак.
А можно узнать, что привело к такому вот положению вещей ?
Конечно можно

У меня есть флеш, который принимает - посылает месаги в аську.
Разные клиенты присылают сообщения в разных кодировках, зависит от страны и локальных настроек. Вот я и хотел все месаги конвертить в УТФ-8, чтобы красиво было.

P.S. вот эта функция может определить mb_detect_encoding, но она в большинстве случаев отключена

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

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
mb_* функции сейчас мало где работают вообще из-за "секурити праблемс".

А по версии-типу клиента не получится поймать, что он там написал ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 07.06.2007, 14:36
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 5  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Так я никак не могу узнать эту информацию Я могу узнать только кодировку, в которой сервер шлет сообщения.

Вообще мне приходят на русском крякозябры, и при проверке функцией mb_detect_encoding, выдает, что у строки кодировка UTF-8. То есть задача усложняется

Старый 07.06.2007, 14:47
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 6  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
Как это - никак не могу ? А что клиент посылает на сервер и кто, собственно, сервером работает ?
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Старый 07.06.2007, 16:23
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 7  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Вот путь сообщения, от того как пользователь отослал в аське, до того, как другой пользователь получил во флеше

user -> ICQ server -> Openfire server -> php demon -> flash client

Так вот пользователь присылает данные о себе ICQ серверу, а не мне (php demon), поэтому я не могу и вытащить кодировку

Старый 07.06.2007, 17:55
Flexxter вне форума Посмотреть профиль Отправить личное сообщение для Flexxter Найти все сообщения от Flexxter
  № 8  
Ответить с цитированием
Flexxter
 
Аватар для Flexxter

Регистрация: May 2007
Сообщений: 14
Вот что выдаёт google относительно твоего запроса: здесь и здесь.

Совет 254. Как автоматически определить кодовую таблицу для русских текстов:
http://www.microsoft.com/Rus/Msdn/Ac...coder/254.mspx
Совет 255. Как определить кодировку текста: еще один вариант:
http://www.microsoft.com/Rus/Msdn/Ac...coder/255.mspx
Перекодировка и обработка строк:
http://www.microsoft.com/Rus/Msdn/Ac...r/Default.mspx

То, как это реализовано в Mozilla-браузере:
http://www.mozilla.org/projects/intl...Detection.html
Вот здесь Mozilla хранит свои OpenSource-Коды:
http://lxr.mozilla.org/seamonkey/sou...rdet/src/base/

Вот этот детектор написан на основе Mozilla:
http://chardet.feedparser.org/docs/

Ну и последнее... статья от Ивана Рощина здесь:
http://ivr.webzone.ru/articles/defcod_2/index.htm
написан очень изощрённый вариант определения кодировки(не советую).

NewFolder, думаю, что лучший пример определения в совете 254 от Microsoft
Когда всё сделаешь то напиши своё решение здесь, сообщи мне об этом в личку
или напиши решение мне в личку.


Обращение ко всем:
Если брать в больших размерах, то сообщения в кодировке UTF-8
непроблематичны, но они увеличивают нагрузку на сервер, как при пересылке
так и при хранении(из-за веса). Большинство сайтов с таким контентом
предпочитают UTF-8. Кто как думает, как сделать так, чтобы не использовав
UTF-8, добиться безпроблемной работы с сообщениями на разных кодировках,
включая не только русские? Пожалуйста пишите только свои решения или
ссылки на решения, а не просто отклики. Если нечего сказать конкретно - флуд здесь
не нужен.

Старый 07.06.2007, 19:58
NewFolder вне форума Посмотреть профиль Отправить личное сообщение для NewFolder Найти все сообщения от NewFolder
  № 9  
Ответить с цитированием
NewFolder
 
Аватар для NewFolder

Регистрация: Nov 2006
Сообщений: 155
Спасибо, покопаюсь

Старый 08.06.2007, 22:39
FFFantik вне форума Посмотреть профиль Отправить личное сообщение для FFFantik Найти все сообщения от FFFantik
  № 10  
Ответить с цитированием
FFFantik

Регистрация: May 2007
Сообщений: 22
Цитата:
Сообщение от NewFolder
Есть строковая переменная в пхп. Ее кодировка может быть какая угодно. Как мне определить, в какой кодировке записан текст?

Мне это необходимо, чтобы передать параметр в функцию iconv()

iconv(???, "UTF-8", $someVar);
Можно попробовать так:
PHP код:
iconv('''UTF-8'$str
У меня работало..
Ссылка откуда взято: http://ru2.php.net/manual/ru/function.iconv.php#59030
оригинальныый текст:
Цитата:
nilcolor at gmail dot coom
24-Nov-2005 02:29
Didn't know its a feature or not but its works for me (PHP 5.0.4)

iconv('', 'UTF-8', $str)

test it to convert from windows-1251 (stored in DB) to UTF-8 (which i use for web pages).
BTW i convert each array i fetch from DB with array_walk_recursive...
Добавлено: нет, к сожелению если строка в неизвестной кодировке приходит извне то этот метод не работает =(


Последний раз редактировалось FFFantik; 09.06.2007 в 18:22.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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