Nasıl tarayıcıya veri gönderirken hangi kodlama PHP tarafından kullanılan olacak bilebilir? Yani Cotent-Type başlığı ile, örneğin: iso-8859-1.
Usually Apache + PHP servers of webhosters are configured to send out NO charset
header.
The shortest way to test how your server is configured are these:
charset
it means your server is using it, usually it won't contain a charset
.charset
PHP gösterecektir farklı ise <?php echo ini_get('default_charset'); ?>
bu yukarıda söylediğim gibi, genellikle, boş bir dize yazdırır.2. Çözelti Apache supposing AddDefaultCharset some_charset
ki genellikle böyle değil yapılandırılmış, ancak bu durumda ben Apache ayar PHP deafult_charset yönergede geçersiz korkuyorum değildir.
Eğer Apache çalıştıran ve Apache yapılandırma (Internet Explorer deli gidecek) everytime kazanacak ki, bir öntanımlı karakter kümesini kullanıyorsa, ancak bak, William önerdi header () çözümü kullanabilirsiniz: AddDefaultCharset
Içerik türleri ve kodlamaları iki farklı şeyler olduğunu unutmayın. text / html içerik türü olduğunu; ISO-8859-1 ve UTF-8 kodlamaları vardır.
Sunucu tipik gönderir HTTP yanıt başlığı şöyle:
Content-Type: text/html; charset=utf-8
"Charset" aslında karakter kodlama. Bu ayrı bir başlık olarak değil; ancak aslında sıkıştırma ne tür tepki kullandığı (örn. gzip) belirtir "Content-Encoding" adlı bir başlık var.
HTML içeren bir dosyayı, UTF-8 karakter kodlamasını değiştirmek istiyorsanız:
<?
header("Content-Type: text/html; charset=utf-8");
Sunucu varsayılan bir içerik veya charset yapılandırılmış, ve PHP ne ise, PHP sadece göndereceğiz Content-Type: text/html
- tüm bir charset belirtmek olmaz ve bunları gördükçe bayt göndereceğiz Senaryoda.
Bir tarayıcı belirtilen charset olmadan bir sayfa alırsa, çeşitli şeyler olabilir:
iso-8859-2
olması için kullanılır örn yerele bağımlı olduğunu; YMMV)us-ascii
geri düşecekBu prosedür, PHP betiğin charset ve tarayıcınızın charset maçları ile ise, metin olacak - yanlışlıkla - okunabilir. Değilse, garip işaretler ve benzeri olaylar olacaktır.