Karakterin bir Unicode karakteri olup olmadığını nasıl kontrol edebilirim?PHP'de Unicode'u denetle
cevap
Aslında hatta mb_string uzantısı gerekmez:
if (strlen($string) != strlen(utf8_decode($string)))
{
echo 'is unicode';
}
Ve belirli bir karakterin kod noktasını bulmak için:
$ord = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
echo $ord[1];
teşekkürler eyeze !!!! bu kod worx .... çok teşekkürler .. – Orion
@Raveesh: Cevabım sorununuzu çözdüyse kabul edildi olarak işaretleyebilirsiniz. =) –
RTL, teşekkürler :) –
: Yukarý düzgün sanırım çok baytlık karakterler, taşıma (karakterleri sayarken strlen sayımları bayt, gerçekten bahsettiğini edilir: Ben eklemek gerekir
if (mb_strlen($ch) != strlen($ch)) ...
yerine unicode daha - unicode da ASCII ayırt edilemeyen yüz tek baytlık karakterler)
Merhaba searlea, Hızlı yanıtınız için teşekkürler! Bu tam olarak aradığım şey. – Orion
bunu kontrol ettim ve aşağıdaki gibi sonuç aldım Php $ ch = 'രവീഷ്'; // Malayalamda benim adım echo mb_strlen ($ ch). "
"; echo strlen ($ ch). "
"; if (mb_strlen ($ ch)!= strlen ($ ch)) \t echo "Unicode"; başka \t echo "Unicode olmayan"; ?> onun bir sonuç sorun ne olabilir Olmayan unicode vererek? –
Orion
Bu kod çalışıyor gibi görünüyor! .. ve bir unicode charecter kod noktası almak için bir işlev bulmak için bana yardımcı olabilirseniz yardımcı olacaktır? – Orion
$ s "somestring" olsun, yani eğer (mb_check_encoding ($ s, "UTF-8")) sonra {string dize unicode} else {unicode değil} –
Bir unicode karakteri, karakterin değeri ne olursa olsun veya çok baytlı bir unicode karakterinin parçasıysa veya ne olursa olsun, HER ZAMAN en önemli bayt setine sahip olacaktır. Bazı unicode karakterler yalnızca bir bayt olduğundan, dizenin karakterlerden daha fazla bayt olup olmadığını kontrol edemezsiniz. Dizenin bayt değerindeki herhangi bir karakter 127'den büyükse, bu dizede unicode bulunur.
unicode karakterinin kod noktasını nasıl alabilirim ? – Orion
Bu yardımcı olmalıdır: http://www.joelonsoftware.com/articles/Unicode.html –
teşekkürler çocuklar .. Son olarak ben cevap var i arıyordu.
http://hsivonen.iki.fi/php-utf8/'dan dahil edilen bir dosya var. - değil karakter akışları PHP'de
<?php
require_once("utf8.inc");
/*** create a unicode string ***/
$s = "حملة إلا صلاتي";
$out = utf8ToUnicode($s);
for ($i=0;$i < strlen($s);$i++)
echo dechex($out[$i]).".";
?>
Strings bytestreams şunlardır:
aşağıdaki kod benim sorun çözüldü. PHP'de gerçekten unicode dizeleri olamaz; Karakterlerinizi bazı kodlamalarla kodlamanız gerekir. Tüm unicode aralığını kapsamak istiyorsanız, UTF-8 en bariz seçenektir. Bir utf-8 kodlu Bytestream ait codepoint almak istiyorsanız
, bu kütüphaneyi kullanabilirsiniz: Ancak http://hsivonen.iki.fi/php-utf8/
, sana bu tam olarak ne gerek acaba? Büyük olasılıkla, utf-8 kullanarak tüm sıkıntılarınızı çözebilirsiniz.
Merhaba arkadaşlar belirlemek için benim Arapça unicode ile mükemmel çalışır .. benim basit gereksinimi bayt akışı kod noktasını bulmak ve ben http: //hsivonen.iki kütüphanesi aracılığıyla aldım. fi/php-utf8/!! çok teşekkürler! – Orion
Hala ilk etapta çözdüğünüz sorunun ne olduğunu gerçekten göremiyorum. Kendim için bir delik kazdığına eminim. – troelskn
- 1. php - geçerli guid'i denetle
- 2. Geçerli Düğüm Sürümünü Denetle
- 3. .class dosyalarındaki içeriği denetle
- 4. ejabberd: Mnesia tablolarını denetle?
- 5. WPF Açılır penceresini denetle
- 6. Zamanlanmış görevler durumunu denetle
- 7. Boş değerler olup olmadığını denetle
- 8. xmllint ile XML sözdizimini denetle
- 9. VBA Geçiş Formu, İşlevleri Denetle
- 10. WPF Kaydırma ana denetimini denetle
- 11. Windows Installer Sürümünü Denetle Sürüm
- 12. Windows Update etkinleştirilirse .NET'den denetle
- 13. Üst veya Alt Üçgen Matrisi Denetle
- 14. .NET 4.5 tam yüklemesini denetle - hangi özellik?
- 15. Facebook iOS SDK v4.0 Kullanıcı Oturumunu Denetle
- 16. Eklenen her satırı bir Tetikleyicide denetle
- 17. Varolan anahtarı etkinleştir ile Varolan verileri denetle
- 18. Microsoft Word 2007 dilbilgisini atla Kodu denetle
- 19. Mocking System.Web.Caching.Cache - Boşluk veya boş için denetle?
- 20. bir ağacın alt düğümlerini denetle [ExtJS]
- 21. Bir modülde sahne prod ejabberd örneğini denetle
- 22. VBA Excel'de belirli hücreleri denetle Yazım denetimi
- 23. Yapılandırma çalıştırmanın başarılı olup olmadığını denetle
- 24. Django Sınama - iletileri yeniden yönlendiren bir görünüm için iletileri denetle
- 25. Tek boynuzlu başlatılamıyor, ana başlatılamadı, detaylar için stderr günlüğünü denetle
- 26. Javascript IE8'de yerel yer tutucu desteğini denetle
- 27. İşaretçi-işlev türü için çağrı çağırma kuralını denetle
- 28. Visual Studio Check-in Seçeneği "Şimdi Denetle" olarak değiştirildi
- 29. Öğeleri Yeniden Sıralama MVVM kullanarak Sürükle ve Bırak ile Denetle
- 30. Aygıtları Denetle Chrome otomatik yeniden aç/yeniden yükle
Bu bağlamda Unicode ile tam olarak ne demek istediğimi netleştirmek isteyebilirsiniz. Unicode'da tanımlanmayan karakterlerle karşılaşacağınızdan şüpheliyim, bu nedenle çekiniz her durumda 'true' döndürülebilir. – Joey
Unicode karakterinin kod noktasını almak istiyorum. nasıl yapılabilir? – Orion
@ Rössel: Bir dizgenin ASCII dışındaki karakterleri içerip içermediğini bilmek istediğine inanıyorum. –