php kaldır / Bu sembolü tanımlamak ï ¿½

8 Cevap php

EDIT:

Tamam ben bir MySQL DB, Tablo, veri girildiğinde nasıl özel yoktan çekilirken bazı verileri (verilerin bir ton) var. Veri ve Firefox için yeniden gösteren bu sembol ayrıştırma zaman gösterir. Ben DB giriş karşılaştırmak zaman bir boşluk (özel bir şey) gibi görünüyor. Tüm varsayılan PHP / MySQL ayarlarını kullanıyorum.

Bir var_dump veya print_r yapıyor ya yardım yok.

Herhangi bir düşünce?

Sembol:

GÜNCELLEME:

Tamam ben sorunu neden karakteri buldun

-

Ile karıştırılmamalıdır

-

(Tire).

8 Cevap

Bu geçerli fontun karakter kümesinde bulunmayan bir karakter anlamına gelir. O geliyor nerede buldum bir kez, bir HTML varlık ile kodlamak gerekir.

Bu karakter tarayıcı görüntülemek nasıl bilmez bir codepoint var demektir. Bir yerde normal bir yazdırılabilir karakter aralığının dışında bir şey için bir karakter değeri belirliyoruz, ve tarayıcı standart 'bilinmeyen' karakterini göstererek anlatıyor.

Sorunu çözmek için tek yol ilk etapta dize içine geçersiz bir karakter koymak hata bulmak.

Html microsoft ofis ürünleri metin yapıştırarak, ya bir veritabanına bu ortak bir sorundur. Büyük suçlular emdash (bulduğunuz gibi) ve akıllı tırnaklar gibi görünüyor. Kullanıcıların bu gibi non-uyumlu bir metin düzenleyicisi kullanarak ısrar zaman ben buldum bir çözüm onlara özel sembolleri şerit, ilk not defteri gibi bir şey yapıştırmak sahip olmaktır.

Açıkçası iyi çözüm sadece web göstermek için tasarlanmıştır metinsel veriler için kelime değil kullanmaktır.

Sadece gelecek okuyucular için bazı bilgi sağlamak için eklendi.

Regards, Jc

Sadece verileri sterilize çalışıyoruz eğer iconv () ve MB_ * fonksiyonları içine bakabilirsiniz.

Başka yerde görüldüğü gibi en olası nedeni karakter kodlamaları ile ilgili bir sorun var olmasıdır. PHP sürüm 6 (bayt dizileri ile ilgileniyor ve daha fazla veya daha az başa geliştirici kadar kodlama sorunları bırakarak) kadar karakter kodlamaları ile ilgili çok iyi değil.

Eğer veritabanı olarak aynı karakter kodlamada sayfasını görüntüleyen emin olun, ve veritabanında yapışmadan önce aynı karakter kodlaması (iconv () ve mb_detect_encoding () yardımcı olacak) içine tüm kullanıcı girişi dönüştürmek emin olun.

Ne diyorsun sen? Nerede gördün mü? Onun tarayıcı üzerinde işlenen sayfadaki varsa, o zaman bir yanlış kodlama ile dosya kaydedilmiş olabilir. Sayfa / kaynak dosyayı kaydederken UTF veya unicode kodlaması kullanın.

Gerçekten muğlak bir soru. Her nasılsa, web sitenizin kodlama, senin veritabanının veri kodlama ve böylece kontrol edin.

EDIT: kusur (muhtemelen utf-8) DB veri kodlama ve (muhtemelen iso-8859-1) webapp kodlama arasında bir uyumsuzluk olduğu için bir cevaptır. Peki, çözüm ya gider:

1.) backup and Wipe out the DB AND THEN load it with the proper encoding 2.) change the webapp's encoding, so the chars are properly displayed.

Selamlar,

Neden Bamya olarak tanımlanan şeye karşı javascript bir regex deneyin "... karakter ... DEĞİŞTİRİLMESİ KARAKTER (U + fffd)" sayfasını render sonra - bu şekilde DB (göründüğün hangi karışıklık olmaz çok yapmak isteksiz) ve minör olursa olsun performans ceza istemci tarafında devredilen.