Здравствуйте. Проблема с русской кодировкой, грешу на php.ini. Вот некоторые вводные: mb_internal_encoding() - ISO-8859-1 mb_regex_encoding()- EUC-JP echo mb_detect_encoding('Всем привет') выдает UTF-8 если делаю так: echo iconv( 'UTF-8', 'windows-1251', 'Всем привет') - то ничего не выводиться а если так то: echo iconv( 'UTF-8', 'windows-1251', 'Hello') - то выводиться Hello Почему так? Если просто в php написать echo 'Привет всем' то все выводиться нормально при кодировке сайта windows-1251. Но если в скрипт php отправить русские символы (name=Ваня) и сделать echo 'Привет '.$_POST['name'], то Привет будет нормально отображаться и "Ваня" -каракулями. Уже с ног сбился, в чем может быть проблема? в настройке PHP (php.ini), что нужно изменить? Изменил заголовок, убрал оттуда "Php.ini", ибо нефиг там что-то менять. Причина не в нём. — модераторъ
Re: Php.ini (Проблемы с русской кодировкой) Если Вы имеете в виду кодировку сайта то windows-1251 если нет уточните где посмотреть! Если в php.ini: PHP's default character set is set to empty. ; http://php.net/default-charset ;default_charset = "UTF-8"
Re: Php.ini (Проблемы с русской кодировкой) Все данные привел для полноты картины. Текстовый редактор использую в кодировке windows-1251, я правильно выбрал кодировку редактора? Добавлено спустя 1 минуту 57 секунд: При создании домена сам указал кодировку windows-1251, разве не правильно?
Re: Php.ini (Проблемы с русской кодировкой) Давай не выбирать какая правильная. Не кодировка виновата, неправильными могут быть только руки. Что за редактор? И как ты судишь о том, какая кодировка у твоей веб-страницы?
Re: Php.ini (Проблемы с русской кодировкой) Редактор NetBeans, при создании проекта я выбираю кодировку файлов php windows-1251, правильно? На всех страницах сайта указываю <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />!
Re: Php.ini (Проблемы с русской кодировкой) Да meta-это так, дополнение небольшое. Нажми в хроме f12, загрузи свой сайт и покажи вот такой скрин: http://prntscr.com/9umjcu
Re: Php.ini (Проблемы с русской кодировкой) Connection:keep-alive Content-Type:text/html; charset=WINDOWS-1251 Date:Mon, 25 Jan 2016 14:40:25 GMT
Re: Php.ini (Проблемы с русской кодировкой) В NetBeans нет возможности посмотреть/изменить кодировку конкретного файла. Ты можешь только задать кодировку по умолчанию для проекта, это какбы "рекомендация" для новых файлов, но ничего никуда не перекодируется. Возможно есть какие-то плагины для управления кодировкой, я не интересовался. В PHPStorm "из коробки" есть возможность работать с кодировкой на уровне файла. Добавлено спустя 1 минуту 54 секунды: Ок, теперь убедись что у тебя одна и та же кодировка на странице с формой и на странице, которая потом выводит 'Привет '.$_POST['name'].
Re: Php.ini (Проблемы с русской кодировкой) Именно так -В NetBeans нет возможности посмотреть/изменить кодировку конкретного файла. Но при создании проекта который я создал я указал именно кодировку windows-1251. Вроде так же можно в свойствах проекта изменить кодировку, после этого русские символы перестают читаться (становятся не читаемы), может он и перекодирует в utf-8... Добавлено спустя 2 минуты 5 секунд: Уважаемые знатоки, мои ответы нас движут к решению проблемы? П.С. ранее (на другом хостинге) был скрипт отдающий сервису данные в кодировке windows-1251, сейчас сервис их не принимает, говорит проблемы с кодировкой.
Re: Php.ini (Проблемы с русской кодировкой) Ещё раз: он ничего не перекодирует. Ты просто в свойствах проекта указываешь в какой кодировке тебе показывать. Понимаешь разницу? Если текст с кириллицей сохранялся как 1251, а ты его показываешь как utf-8, он выглядит плохо. И наоборот. Сами данные при этом не меняются. Пойми этот, блин, ключевой момент: смена точки зрения не меняет данные. Когда ты одеваешь чужие очки, мир не становится мутным. Добавлено спустя 6 минут 17 секунд: что с этим?
да и виндовый блокнот это умеет. но ты не сравнивай процессор текста и иде. тем более что по умолчанию все иде используют юникод. и в принципе ничего же не мешает уж на 17-то году 21-го века перенастроить все на юникод. но видишь тут человек хочет сипи1251 и получает от него огромное кол-во геморроя удовольствия. а мог бы использовать юникод.
Проблема даже не в 1251, а в том, что у автора разные кодировки, а он этого не знает. Я даже предполагаю как такое получилось, но не будем забегать вперед.
Выдает: Привет потом каракули если передаю в поле русские символы. НО если в выводе сделать вывод iconv( 'UTF-8', 'windows-1251', $POST['name'])- все выводиться нормально!
действительно, с чего бы ему выводится нормально? Хоть бы свою тему читали, в ней уже давно написали, почему такое происходит, а вы не видите.