5

CURL を使用してコードをインポートしています。しかし、フランス語では、すべての文字が出てきます. 例: ボンジュール ...

インポートされたコードを変更する権限がありません。これを修正するために私にできることはありますか?

ありがとう

4

5 に答える 5

14

Jon Skeetが指摘したように、状況を理解するのは難しいですが、最終テキストにしかアクセスできない場合は、iconvを使用してテキストエンコーディングを変更してみてください。

いえ

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

以前に同様の問題があり(イタリア語と特殊文字を使用)、この方法で解決しました。

別の組み合わせを試してください (UTF-8、ISO-8859-1、Windows-1252)。

于 2009-03-16T10:22:33.680 に答える
7

同様の問題がありました。入力文字セットと出力文字セットのすべての組み合わせをループしようとしました。何も助けませんでした!:(

しかし、実際にデータを取得したコードにアクセスすることができました。これが犯人の嘘でした。データは 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); 
    } 
} 
于 2013-08-15T04:44:49.493 に答える
3

あなたはあなたを置き換えることができます

$data = curl_exec($ch);

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

私はこれと同じ問題を抱えていましたが、うまくいきました。

于 2012-03-04T20:03:52.767 に答える
3

PHP seems to use UTF-8 by default, so I found the following works

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

于 2009-04-07T10:02:55.303 に答える
2

私は現在、同様の問題に苦しんでいます。単純な html<title>インポーター cia cURL を作成しようとしています。だから私は今まで何をしてきたかのアイデアを与えるつもりです:

  1. cURL 経由で HTML を取得する
  2. 応答ヘッダーにエンコードのヒントがあるかどうかを確認し、curl_getinfo()正規表現で一致させます
  3. content-typeメタと<title>タグを確認する目的で HTML を解析します(はい、結果はわかっています) 。
  4. content-type、header、meta の両方を比較し、異なる場合は meta を選択します。なぜなら、httpd の設定を気にする人は誰もおらず、それを使用するダート回避策がたくさんあるからです。
  5. iconv()文字列
  6. 誰かが基準に従わない場合$DEITY、メタ解析を節約できるので、その日の終わりまで彼/彼女を罰することを毎日願っています
于 2009-11-19T14:59:01.800 に答える