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 :: Версия для печати :: Есть ли такая функция которая изменяет кодировку
Форумы портала PHP.SU » » Вопросы новичков » Есть ли такая функция которая изменяет кодировку

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

1. grafillo - 04 Октября, 2016 - 10:19:16 - перейти к сообщению
Столкнулся с проблемой некоторые юзеры заходят в моё приложение с непонятными кодировками, есть ли в пхп такая функция которая перекодирует неизвестную кодировку в utf-8, именно непонятно что за кодировка и чтобы она её кодировала в utf?
2. Мелкий - 04 Октября, 2016 - 11:52:29 - перейти к сообщению
Кодировка символов - это таблица отображения одних и тех же байтов в огромным числом различных способов.
Вам приехало 10 байт. Как думаете, какой кодировкой надо воспользоваться? Любой. И лишь чуть менее чем в любой кодировке для абсолютно каждого из полученных байтов найдётся что отобразить.
В абстрактном виде задача не имеет решения вообще.
3. grafillo - 04 Октября, 2016 - 12:11:31 - перейти к сообщению
тогда вопрос поставим по другому, если у меня бд в утф, а ко мне пользователи добавляют данные в утф и в виндоус1251 как мне эти кодировки привести к утф8, то есть если я воспользуюсь iconv из 1251 в утф то когда данные будут приходить в утф что будет происходить?
4. Мелкий - 04 Октября, 2016 - 12:28:12 - перейти к сообщению
Получите бинарный мусор. Возможно варнинг от iconv.

PHP:
скопировать код в буфер обмена
  1. foreach (['utf8', 'cp1251'] as $inputEncoding) {
  2.     $encodedString = iconv($inputEncoding, 'utf8/ignore', $inputString);
  3.     if ($encodedString === $inputString) {
  4.         return $encodedString;
  5.     }
  6. }
  7. throw new \RuntimeException('unknown or corrupt string encoding');

 

Powered by ExBB FM 1.0 RC1