AA Başlarken, ¬ â "PHP (') kesme işareti yerine ¢

10 Cevap php

I'v utf8 veya metni dönüştürme çalıştı ... yardımcı görünmüyordu

Im alıyorum:

"It’s Getting the Best of Me"

Bu olmalıdır:

"It’s Getting the Best of Me"

Im bir url bu veri alma -> http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0

10 Cevap

HTML varlıklara dönüştürmek için:

<?php
  echo mb_convert_encoding(
    file_get_contents('http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0'),
    "HTML-ENTITIES",
    "UTF-8"
  );
?>

Daha kodlama seçenekleri için mb_convert_encoding için dokümanlar bakın.

İçerik sorunun sunucu gönderiyor başlıklarıyla olduğunu gayet:

Connection:Keep-Alive
Content-Length:502
Content-Type:text/html
Date:Thu, 18 Feb 2010 20:45:32 GMT
Keep-Alive:timeout=1, max=25
Server:Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch
X-Powered-By:PHP/5.2.4-2ubuntu5.7

Bu sayfa HTML değildir ve (mac krom ISO-8859-1 tahmin ve tarif ettiğiniz karakterleri görüntüler) utf-8 kodlaması kullandığı için Content-Type, Content-type: text/plain; charset=utf-8 ayarlanmalıdır

Eğer sitenin kontrolünde değilse, (tam olarak nasıl bilmek PHP yeterince aşina değil) UTF-8 içeriği almak için kullanmak ne olursa olsun işlev olarak kodlaması belirtmek

Html başlık utf8 belirtir emin olun

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Bu genellikle benim için hile (tabii ki içerik utf8 IS varsa) yapar.

Eğer içerik türü ayarlarsanız varlıkları html dönüştürmek gerekmez.

Eğer (') UTF8 karakter standart dize işlevlerini kullanarak konum gibi ISO 8859-1 mevcut olmadığını geliyor. Eğer Unicode compatible PHP ayarları ve fonksiyonları kullandığınızdan emin olun. multibyte string fonksiyonları ayrıca bkz.

Ben soru cevap oldu biliyorum ama meta tag ayarı benim durumumda yardımcı olmaz ve seçilen cevap yeterince açık değildi yoktu, bu yüzden basit cevap vermek istedim.

Yani bu gibi bir değişken ve süreç içine basit, mağaza dize tutmak için

$TVrageGiberish = "It’s Getting the Best of Me";

$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", 'UTF-8');

echo $notGiberish;

Ne istediğini dönmelidir Hangi It’s Getting the Best of Me

Bir şey ayrıştırma iseniz $TVrage içerebilir tag "Başlık" olan bir yem bu örnekte tüm değerler, XML ile dizidir böyle bir değişken, değerleri atarken, sen dönüşüm yapabilirsiniz Böyle ‘ veya ’ gibi özel karakterler.

$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", 'UTF-8');

Ben linke baktım ve bana UTF-8 gibi görünüyor. yani, Firefox, sen View, Karakter kodlaması seçerseniz, UTF-8, doğru görünür.

Yani, sadece PHP kodu UTF-8 olarak bu işlemek için nasıl anlamaya gerekir. İyi şanslar!

Eğer bu deneyin wordpress site önemsiz karakterlerle ilgili sorunlar yaşıyorsanız, çünkü burada iseniz:

1.Open wp-config.php

2.comment üzerinden ('DB_CHARSET', 'utf8') tanımlamak ve ('DB_COLLATE','') tanımlamak

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
//define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
//define('DB_COLLATE', '');

Bu kullanabilirsiniz

<meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci" />

Bu yerine

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Bu deneyin:

html_entity_decode(mb_convert_encoding(stripslashes($text), "HTML-ENTITIES", 'UTF-8'))

Biz bunu kullanarak başka yöne gidiyor başarı vardı:

mb_convert_encoding($text, "HTML-ENTITIES", "ISO-8859-1");