Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Kayıt Ol

UTF-8 karakter sorunu

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
Veri çekerken UTF-8 olan siteden gelen veriler bozuluyor. Replace ile ş , ç , ı 'yı hallettim fakat İ ve Ğ - ğ düzeltilmiyor. Örneğin :

ı : ı
ç : ç
İ : İ - bu düzeltilemiyor.
Ğ� : Ğ - � işaretli yer düzeltilmiyor.

UTF-8 dönüşümü yani û gibi karakter değişimleri işe yaramıyor. Sadece yukarıdaki tarzda dönüştürme işe yarıyor fakat ondada � çıkan karakterler nasıl gösterilecek ona çare bulamadım.

Acaba bunu düzeltme imkanı varmıdır ?
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
mysql_query("SET NAMES 'utf8'");

ekle bağlantı kodlarının hemen altına.
 

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
Veri çekerken demiştim sanırım eksik oldu. Başka sitelerden veri çekerken. Örneğin youtube - wikipedi ya da UTF-8 kodlanmış veya Türkçe kodlanmamış herhangi bir site.
Çekilen verileri dönüştürmek mümkünmü acaba bu tarz bi kodu uygun yere ekleyerek ? (kodlama PHP)

mysql_query("SET NAMES 'utf8'");
ekle bağlantı kodlarının hemen altına.
 

fan

0
İyinet Üyesi
Katılım
4 Şubat 2007
Mesajlar
663
Reaction score
0
Konum
Nereye
ben şöyle bişi kullanıyom youtubeden çekerken.

PHP:
	function char_norm($ready)
	{
		$bad   = array('ı','ü','Å?','ç','ö','Ä?','Å?ov','ÄŸ','ÅŸ','İ','İ','Åž','ä','"','.','é','é','ú','º','ã','ê','É',':','%','½','Ç','Ü','Ö');
		$good  = array('ı','ü','ş','c','ö','ğ','Şov','ğ','ş','İ','İ','Ş','a','','','e','e','u','','a','e','E','','','','Ç','Ü','Ö');
		$ready = str_replace($bad,$good,$ready);
		return $ready;
	}
 

deja_wu

0
İyinet Üyesi
Katılım
26 Şubat 2005
Mesajlar
142
Reaction score
0
$veri = iconv("UTF-8","ISO-8859-9",$veri);

yada

header("Content-Type: text/html; charset=iso-8859-9");
header("Content-Type: text/html; charset=UTF-8");
 

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
Deneyeyim bakalım tüm bunları. Ama : 'Å?' bunu verdiğimde karakteri algılamıyordu. Bakalım sonuçta düzeltmeyi becerebilecekmiyim.
-
Yok sanırım böyle olmayacak tek çare karakter değişimi. FAN seninki sorunu çözüyorsa eğer onu TEXT dosyası olarak post edersen sevinirim. Sanırım FORUMDA da ? olarak çıkıyor o karakter.
 

beceriksiz_acemi

0
İyinet Üyesi
Katılım
27 Aralık 2005
Mesajlar
4,796
Reaction score
18
Konum
-Adsense-
PHP:
<?

mysql_connect($server, $user,$pass) or die ("Hata: veritabanına bağlanılamadı!.Bilgiler yanlış");
mysql_select_db($database) or die ("Hata: veritabanına bağlanılamadı!.Db yok");
mysql_query("SET NAMES 'latin5'");

$site = "http://".$_SERVER["SERVER_NAME"];
function trsil($q) { 
$q = str_replace ("ç","c",$q);
$q = str_replace ("ç","c",$q); 
$q = str_replace ("ğ","g",$q); 
$q = str_replace ("İ","I",$q); 
$q = str_replace ("ı","i",$q); 
$q = str_replace ("ş","s",$q); 
$q = str_replace ("ö","o",$q); 
$q = str_replace ("ü","u",$q); 
$q = str_replace ("Ü","U",$q); 
$q = str_replace ("Ç","c",$q); 
$q = str_replace (".","",$q); 
$q = str_replace ("Ğ","g",$q); 
$q = str_replace ("Ş","S",$q); 
$q = str_replace ("Ö","O",$q); 
$q = str_replace (" ","_",$q); 
$q = str_replace ("'","",$q); 
$q = str_replace ("/","",$q); 
$q = str_replace ("__","_",$q); 
$q = str_replace ("!","",$q);
$q = str_replace (":","_news_",$q);
$q = str_replace ("?","",$q);
$q = str_replace ("»","1",$q);
$q = str_replace (" ","",$q);
$q = str_replace ("?","",$q);
$q = str_replace ("®","",$q);
$q = str_replace ("™","",$q);
$q = str_replace ("|","_",$q);
$q = str_replace ("(","",$q);
$q = str_replace (")","",$q);
$q = str_replace ("è","e",$q);
$q = str_replace ("à","a",$q);
$q = str_replace ("ï","ş",$q);
return $q; 
} 
?>
 

nokie

0
İyinet Üyesi
Katılım
23 Mart 2005
Mesajlar
1,597
Reaction score
8
Konum
İzmir
o karakterlerin bozuk çıkması veritabanının UTF-8 karakter kodlamasıyla uyumlu çalışmıyor olmasından ileri geliyor. Scriptle düzeltseniz bile veritabanına bozuk şekilde yerleştirilir, buda gelecekte geri dönüşümsüz her türlü karakter sorunu sizi bekliyor demektir.
 
Üst