Türkçe Karakterleri Tanıtma Sorunu
-
merhaba arkadaşlar;
Bir php dosyasında , kendi içerisinde desteklenen karakterler gösterilmiş:
Örn: if(!eregi("^[\-\.\x20A-Z0-9]+$", $INV->model))
Burada biz model alanına, Türkçe karakterleride tanıtmak istiyoruz. Denemelerimizde; bu haliyle kaydetmiyor.
fakat biz ' if(!eregi("^[\-\.\x20A-Z0-9şŞıİöÖçÇüÜğĞ]+$", $INV->model)) ' olarak denediğimizde, ÇçÖöÜü karakterlerini gösteriyor ama Ş ve diğer karakterler yerine ? işareti basıyor.
Bunu bi türlü çözemedik. Veri tabanı sorgusu UTF-8 ve Latin5 olarak ayrı ayrı denedik.
Sonuç yok.
konunun ustaları bu konuda yardımcı olabilirse çok seviniriz.
Teşekkürler. -
dosyanın karakter kodlaması nedir, belki onunda etkisi olmuş olabilir.
veritabanındaki tabloların karakter setlerini, dosyaların karakterleri ve son olarak metayada karakter setini utf8 olarak tanıtırsanız browser için düz mantık sorun olmaması gerekir.
Ama phpnin bagzı fonksiyonları utf8de problemler olusturabiliyor.Ben substrde sorun yaşamıştım bunuda göz önünde bulundurmak gerekir.
Yada latin5,Türkçe çalışabilirsiniz ama onda tecrubem yok. -
Dosyanın karakter kodlamasını UTF8, UTF8 without Bom ve ANSI olarak ayrı ayrı dene.
-
hocam karakter kodlaması yok,zaten komple bi php dosyası,inc.php gibi farzedin. bi ayar dosyası yani.
if(!eregi("^[\-\.\x20A-Z0-9şŞıİöÖçÇüÜğĞ]+$", $INV->model)) $errors[] = $_LANG['modifyListing']['model'].' ( '.$INV->model.' ) '.$_LANG['modifyListing']['allowedChar'];
kodun tamamı bu! ÇçÖö karakterleri destekleniyor,ama diğerleri yerine ???? işaretleri bsıyor. -
tamam dediğimiz gibi hocam karakterleri ekleyerek php işlem yaparken Tr karakterleri silmesini engelledin.
? işaretlerinin nedenleri de meta taginde utf8 ayda latin5 olarak tanıtmamış olman olabilir yada sscheme'inde dediği gibi dosya karakter setlerini de değiştirmemen olabir hepsinde istikrarı tutturman gerek.Tablolarının karakterseti (veri kayıt edilip okunurken bozulmaması için Türkçe karakterlerin), php dosyalarının karakter setleri, ve son olarak head arasında browser için belirttiğimiz karakter setini de ayarladıgında sorun olusmaması gerek.
Türkçe karakterler eğer veritabanına doğru düzgün kayıt oluyorlarsa sorun muhtemelen headerdaki tanımlamadadır onu bir kontrol et.
mesela tbtde <meta http-equiv="Content-Type" content="text/html"; charset="utf-8"> ile karakter setinin utf8 olduğu belirtilmiş. -
// mb_regex_encoding("UTF-8");
if(!mb_eregi ("^[\-\.\x20A-Z0-9şŞıİöÖçÇüÜğĞ]+$", $INV->model)) ...
Bu kodu test etmedim ama bir deneyebilirsin.
-
maalesef olmadı arkadaşlar :)
offf kırıcam kafayı yaaa. -
Notepad++ la yapıyorsun dimi??? UTF8 without bom işini görmeli diyorum başka birşey diyemiyorum
