PHP UTF-8 karakter vurgulama

2 Cevap php

Maalesef bu soru bir yerde zaten ama ben daha pratik bir yaklaşım gerekirse:

Sayfa aşağıdaki gibi ayarlanır:

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

Daha sonra php i aşağıdaki satırı kullanın

$v .= "<a href='" . $videoEntry->getVideoWatchPageUrl() . "' rel='vidbox' title='" . $videoEntry->getVideoTitle() . "'><img src='";

...

$v .= "<td width='52%' height='16'><strong>Visualizações:</strong> " . $videoEntry->getVideoViewCount() . "</td>";

Tamam. şimdi

I yaptığınızda

echo $v;

Itajubá em Foco Canal20 Oficina de Cuidados Paliativos (doğru)

Visualizaes: 204 / / (yanlış)

i çalışırsanız

echo utf8_encode($v);

Itajubá em Foco Canal20 Oficina de Cuidados Paliativos / / (yanlış) ¡

Görselini sadece: 204 / / (doğru)

Ben kullanmaya çalıştım

header ('Content-type: text / html; charset = utf-8');

ama hiçbir başarı ile.

2 Cevap

Veritabanından veri UTF-8, fakat statik içerik olarak dışarı Tamam geliyor eğer size metin editörü UTF-8 olarak PHP dosyayı kendisi tasarruf değil demektir ki, kendisi değildir. Php dosyasında var . Muhtemelen Windows kod sayfası 1252 (Batı Avrupa) olarak kaydedilmiş; kaydetmek diyalog kutusunu değiştirmek için emin olun (UTF-8 için 'BOM olmadan UTF-8' için ayrı bir seçenek varsa seçim UTF-8-ile-BOM tamamen sahte olduğu gibi, yani).

Geri dosyasını yüklediğinde metin editörü sonra sembolleri yanlış alırsa, UTF-8 modunda varsayılan olarak dosyayı yüklemek için bunu söylemek gerekir. O seçenek yoksa, o çöp olduğunu ve değiştirilmesi gerekir. Eğer gerçekten yerini alamaz Eğer ya HTML olarak, kaynak dosya ve onları kodlayan Unicode karakter vazgeçmek zorunda olacak:

Visualiza&#xE7;&#xF5;es

ya da, özellikle PHP dize değişmezi:

"Visualiza\xE7\xF5es"

tesadüfen Eğer HTML içine metin koyarak olduğunuzda htmlspecialchars, aksi XSS böcek var kullanarak gerekir.

Kullandığınız editör UTF-8 dosyaları kaydetme olduğundan emin olun! Bu Bazı şeyler (alternatif do it UTF-8 saklanacak olan bir veritabanından geliyor gibi görünüyor

mysql_query("SET NAMES utf8");

UTF-8 için bağlantı geçmek için.

Metin ("görselini sadece") ve editör tarafından UTF-8 olarak kayıtlı değilse size editörü veya "iconv" gibi başka bir aracı kullanarak dosyayı dönüştürmek gerekir.

Best wishes,
Fabian