- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пример из http://api.yandex.ru/direct/doc/examples/php-sample-json.xml#campaign работает, но кампания в Директе создаётся со строками из квадратиков вместо русских букв. Браузер показывает, что в исходящем запросе на самом деле квадратики вместо русских букв.
Замена utf8_encode($value) на iconv('windows-1251', 'UTF-8', $value) в
приводит к коректному отображению в браузере строк запроса, но к ошибке от Яндекса "Request encoding is not UTF8".
Что может быть не так?
P.S.:
- Windows XP
- Denver
приводит к коректному отображению в браузере строк запроса
C явно указаной кодировкой в браузере?
Пробовал вообще не использовать функцию utf8?
Исходные данные точно в windows-1251 поступают?
Определить utf8 или windows-1251 можно так:
Или альтернатива:
skAmZ добавил 16.09.2011 в 18:04
форум из функции detectUTF8 хрень сделал... "***91;" - меняем на "[" и "***93;" на "]"
C явно указаной кодировкой в браузере?
Именно - с явным указанием utf-8 (выбор в меню).
Пробовал вообще не использовать функцию utf8?
Пробовал. После засовывания в json_encode, вместо строк с русскими буквами на выходе оказываются null. То есть при преобразовании целиком теряются русские. Яндекс успешно на это ругается.
Исходные данные точно в windows-1251 поступают?
Да. Беру код из примера Яндекса, сохраняю через FAR в кодировке Win (до сих пор это всегда был windows-1251). Данные находятся прямо в коде-примере, поэтому они точно в windows-1251. На всякий случай делал преобразование windows-1251 - utf-8 - windows-1251 - получал в браузере корректную windows-1251.
Определить utf8 или windows-1251 можно так:
Возвращает 0 там, где цифры или английские строки, и 1, где строки русскоязычные:
0 int(0)
No int(0)
Новая кампания int(1)
Иванов Иван Иванович int(1)
login@yandex.ru int(0)
Yes int(0)
1 int(0)
15 int(0)
No int(0)
скачать int(1)
mp3 int(0)
песня int(1)
Yes int(0)
50 int(0)
HighestPosition int(0)
Или альтернатива:
Везде возвращает не null.
Слава Шевцов добавил 16.09.2011 в 18:25
форум из функции detectUTF8 хрень сделал... "***91;" - меняем на "[" и "***93;" на "]"
Да. Функция видна корректно в окне цитирования.
Возвращает 0 там, где цифры или английские строки, и 1, где строки русскоязычные:
Значит данные уже в utf8.
Но тогда
Пробовал. После засовывания в json_encode, вместо строк с русскими буквами на выходе оказываются null. То есть при преобразовании целиком теряются русские. Яндекс успешно на это ругается.
Этого не может быть, json_encode так поступает только с русскими символами в кодировке windows-1251. utf8 нормально должен обрабатывать.
Везде возвращает не null.
Если не null то что?) utf8 или windows-1251?
skAmZ добавил 16.09.2011 в 19:06
А после json_encode русские символы так и остаются русскими или вылдядят примерно так: "\u043b\u043e\u0440\u043b\u043e\u0440"?
skAmZ добавил 16.09.2011 в 19:08
приводит к коректному отображению в браузере строк запроса
Кстати говоря, у меня русские символы становлятся такими "\u0441\u043a\u0430\u0447\u0430\u0442\u044c" (это слово "песня").
Этого не может быть, json_encode так поступает только с русскими символами в кодировке windows-1251. utf8 нормально должен обрабатывать.
Именно это и наблюдается - сую в windows-1251 и получаю null. Сую в utf8 и получаю:
А после json_encode русские символы так и остаются русскими или вылдядят примерно так: "\u043b\u043e\u0440\u043b\u043e\u0440"?
Точнее вот это:
В ответ прилетает:
Слава Шевцов, единственное что могу предложить это оставить без изменения фунцию utf8, т.е. не менять utf8_encode. Попробовать так... но почему-то мне кажется что вы уже так пробовали :)
Тогда попробовать сначала данные переконвертировать в ISO-8859-1 и затем пустить их через функцию utf8.
Слава Шевцов, единственное что могу предложить это оставить без изменения фунцию utf8, т.е. не менять utf8_encode. Попробовать так... но почему-то мне кажется что вы уже так пробовали
Увы, да. Пробовал. Запрос в Яндекс ушёл успешно, но кампания была создана странно: вместо русских букв - квадратики :(
Тогда попробовать сначала данные переконвертировать в ISO-8859-1 и затем пустить их через функцию utf8.
Попробовал. Вот что получилось:
То есть вместо русских строк на этот раз подставились пустые строки.
От Яндекса прилетело:
Слава Шевцов, я тут поковырялся.
Попробуй так:
1. исходную строку имеем в windows-1251.
2. $s=iconv('windows-1251', 'utf-8', $s); // s наша исходная строка
3. $s=iconv('ISO-8859-1', 'utf-8', $s);
И вот полученную строку пускаем через json_encode.
Т.е. вместо исходного "$struct[$key] = utf8_encode($value);". пишем:
$struct[$key] = iconv('ISO-8859-1', 'utf-8', iconv('windows-1251', 'utf-8', $value));
Если и это не поможет то тогда уже только в суппорт)
1. исходную строку имеем в windows-1251.
2. $s=iconv('windows-1251', 'utf-8', $s); // s наша исходная строка
3. $s=iconv('ISO-8859-1', 'utf-8', $s);
И вот полученную строку пускаем через json_encode.
Бред какой-то. Но он работает! Спасибо.
Слава Шевцов, согласен, бред. Но яша декодирует в обратном порядке json_decode -> utf8_decode. От судя и плясали, что нужно передать чтобы после utf8_decode был нормальный русский текст при просмотре в utf8 :)