kodlama ile ilgili sorunlar (php)

3 Cevap php

Sitem utf-8 kodlama (Drupal) var.

I use include function to integrate my page with 3rd party service. But this gives a bad result - bad encoding for include part of page.

ben bu deneyin, ancak bu herhangi bir sonuç vermez:

iconv("ASCII","utf-8",include("http://new.velo-travel.ru/themes/themex/spectrum_view.php?$QUERY_STRING"))

Bu daha önce ben kodlamayı bilmeniz mb_detect_encoding kullanın

bu included file,

$url = 'http://young.spectrum.ru/cgi-bin/programs_form.pl';
$params = $_GET;
if ($params){
  $url .= '?';
  foreach ($params as $key => $value) $url .= '&' . $keys . '=' . urlencode($value);
}

#$content = file_get_contents($url);
echo iconv("cp-1251","utf-8", $url);

3 Cevap

(Aslında dahil dosyasındaki return çağrı sürece) include işlevi bir dize dönmez, tam anlamıyla kaynak koduna içeriğini içerir. Sunucu PHP kaynak kodu döndürür Yani, (temelde "new.velo-travel.ru" sahipleri :) siteniz üzerinde kontrole sahip olacak demektir) sunucu üzerinde yorumlanır.

Augenfeind işaret olarak da, sayfa windows-1251 olduğunu. Yani, muhtemelen istiyorum:

echo iconv("windows-1251", "utf-8", file_get_contents("http://new.velo-travel.ru/themes/themex/spectrum_view.php?$QUERY_STRING"))

Peki, sen dahil sayfa Velo-travel.ru web sunucusu tarafından "windows-1251" olarak teslim edilir.

Yani iconv-komuta kodlamasını değiştirmek isteyebilirsiniz?!

Dosyanızda tüm çıktılanmasını metin ve rakamları için mb_convert_encoding veya iconv deneyin. Örneğin:

$text = mb_convert_encoding( $oldText, 'UTF-8', "ISO-8859-1" );

veya

 $text = iconv( "ISO-8859-1", "UTF-8", $oldText);

Hope you get it wveyaking!