CURL проблема импорта символов - PullRequest
5 голосов
/ 16 марта 2009

Я использую CURL для импорта некоторого кода. Однако на французском все персонажи получаются смешными. Например: Bonjour ...

У меня нет доступа, чтобы что-либо изменить в импортированном коде. Могу ли я что-нибудь сделать, чтобы исправить это?

Спасибо

Ответы [ 5 ]

14 голосов
/ 16 марта 2009

Как отметил Джон Скит, трудно понять вашу ситуацию, однако, если у вас есть доступ только к окончательному тексту, вы можете попробовать использовать iconv для изменения кодировки текста.

* 1005 Т.е. *

$text = iconv("Windows-1252","UTF-8",$text);

У меня была похожая проблема назад (с итальянским языком и специальными символами), и я решил ее таким образом.

Попробуйте другую комбинацию (UTF-8, ISO-8859-1, Windows-1252).

6 голосов
/ 15 августа 2013

У меня была похожая проблема. Я попытался перебрать все комбинации входных и выходных кодировок. Ничего не помогло! (

Однако я смог получить доступ к коду, который на самом деле извлек данные, и именно здесь виноват виновник. Данные были получены через cURL. Добавление

 curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

исправил это.

Удобный набор кода для опробования всех возможных комбинаций списка кодировок:

$charsets = array(  
        "UTF-8", 
        "ASCII", 
        "Windows-1252", 
        "ISO-8859-15", 
        "ISO-8859-1", 
        "ISO-8859-6", 
        "CP1256"
        ); 

foreach ($charsets as $ch1) { 
    foreach ($charsets as $ch2){ 
        echo "<h1>Combination $ch1 to $ch2 produces: </h1>".iconv($ch1, $ch2, $text_2_convert); 
    } 
} 
3 голосов
/ 05 марта 2012

Вы можете заменить свой

$data = curl_exec($ch);

от

$data = utf8_decode(curl_exec($ch));

У меня была такая же проблема, и она хорошо работала для меня.

3 голосов
/ 07 апреля 2009

PHP, по-видимому, использует UTF-8 по умолчанию, поэтому я нашел следующие работы

$ text = iconv ("UTF-8", "Windows-1252", $ text);

2 голосов
/ 19 ноября 2009

У меня сейчас похожая проблема, я пытаюсь написать простой HTML <title> импортер CIA CURL. Итак, я собираюсь дать представление о том, что я сделал до сих пор:

  1. Получить HTML через cURL
  2. Проверьте, есть ли какой-нибудь намек на кодировку заголовков ответа через curl_getinfo() и сопоставьте его с помощью регулярного выражения
  3. Синтаксический анализ HTML с целью поиска мета-содержимого мета-типа и тега <title> (да, Я знаю последствия )
  4. Сравните оба типа контента, заголовок и мета и выберите мета, если он отличается, потому что мы знаем, что никому нет дела до их конфигурации httpd, и существует множество грязных обходных путей, использующих его
  5. iconv() строка
  6. Желаю каждый день, когда кто-то не соблюдает стандарты $DEITY наказывает его / ее до конца дней, потому что это спасет меня от анализа мета
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...