2015-09-30 34 views
5

ile chr Fonksiyon Sayı Aşağıdaki kodu var:PHP: Özel karakterler PHP

<?php 
    echo "€<br>"; 
    echo ord("€") . "<br>"; 
    echo chr(128) . "<br>"; 

Ve şu çıktıyı almak:

€ 
128 
� 

Neden chr fonksiyonu beni sağlayamaz € işareti? € nasıl alabilirim? Çalışmak için buna gerçekten ihtiyacım var. Şimdiden teşekkürler. Yalnızca bir bayt ASCII karakteriyle çalışmak için

+0

gibi bir multi-byte kodlaması ile ord ve chr kullanamaz. – BisaZ

+0

benim için iyi çalıştı. –

+0

Dosya, UTF-8 olarak kaydedildi (BOM ile/olmadan) nedir? sorun olabilir. ANSI olarak kaydedin ve tüm 3 echos doğru görünecektir. –

cevap

4

ve ord. Daha spesifik olarak ord sadece parametresinin ilk baytına bakar.

Euro işareti UTF-8 üç bayt karakter: böylece ord("€") (UTF-8 sembolüyle), 0xE2 0x82 0xAC döndürür 226 (0xE2) ISO-8859- yılında da mevcuttur karakterler için

1 (latin1) karakter seti, utf8_encode() ve utf8_decode()'u kullanabilirsiniz, ancak maalesef burada € işareti bulunmuyor, bu nedenle utf8_decode('€') "?" ve geri dönüştürülemez.

TL

; DR: Benim bir dize içinde gerçek € işarete ihtiyacım UTF-8