- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Сам скрипт php в кодировке utf-8 (не знаю влияет ли это)
Текст в windows-1251 iconv переводит в utf-8 как ����� �����
В чем проблема?
Спасибо!
Наверное вы хотели сказать вывод в браузер?
Может быть для браузера выводится кодировка win1251
так и есть
в БД пишет нормально
повылазили Notice: iconv(): Detected an illegal character in input string
начал копать
---------- Добавлено 17.11.2017 в 12:08 ----------
эти ошибки возникают на таком тексте "л.с.", "км.","руб."
и еще Detected an incomplete multibyte character in input string возникает
в коде у меня
iconv(mb_detect_encoding($a->plaintext, "utf-8,windows-1251"), "UTF-8//IGNORE",$a->plaintext);
А если просто:
$a->plaintext=iconv("cp1251", "UTF-8//TRANSLIT//IGNORE",$a->plaintext);
тогда выводит корректно
но есть проблемы
если делать $a->plaintext = iconv(mb_detect_encoding($a->plaintext, "utf-8,windows-1251"), "UTF-8//IGNORE",$a->plaintext);
то проблема с текстом в windows-1251 - его в БД не записывает
если
if (mb_detect_encoding($a->plaintext)!='utf-8')
$a->plaintext = iconv("windows-1251","UTF-8//IGNORE",$a->plaintext);
if (mb_detect_encoding($a->plaintext)=='utf-8')
$a->plaintext = iconv(mb_detect_encoding($a->plaintext, "utf-8,windows-1251"), "UTF-8//IGNORE",$a->plaintext);
то текст в utf-8 в БД пишется в крякозябрах
joost, нужно прийти к единой кодировке:
- отображение сайта (можно посмотреть в браузере);
- содержимое скрипта (если в нем самом нет текстов, то не принципиально);
- таблица базы данных и работа с БД.
Где-то есть расхождения. Я бы mb_detect_encoding вообще не использовал.
задача по сути такая
у меня все в utf-8
данные могут поступать в самых разных кодировках
их нужно перекодировать в utf-8
Определять кодировку по кусочку текста это неблагодарное дело. Лучше узнавать кодировку по всему тексту изначальному и смотреть, что там за кодировка.
данные могут поступать в самых разных кодировках
Вот и проверили бы - судя по вашим сообщениям, там не только utf8 и cp1251, но и другие кодировки, которые не определяются при задании списка из двух кодировок.
joost, в таком случае только если кодировка не utf-8, то надо определять кодировку именно этого текста и конвертировать именно из его кодировки в utf-8.
Определять кодировку по кусочку текста это неблагодарное дело
так там разных кусков текста разная кодировка