PHP dosyan ya da txt dosyan UTF-8'le kodlanmış olabilir mi?
Hostingde yeni veritabanı kurarken karşılaştırmayı sormadığı için denemelerimi localde yapıyorum ve PHP versiyon 5.2.1 (appserv kurulu).
Karşılaştırma ve string alanlarını latin5_turkish_ci olarak ayarladım. txt dosyalarındaki bir takım verileri mysqle giriyorum PHP ile. Aslında birkaç gün önce aynı veritabanına, benzer bir işlemi yapmıştım hiç problem yoktu. O PHP sayfasının üzerinde düzenlemeler yapıyordum bugün. Ancak 5 saattir nerede problem anlayamadım.
Sayfada hatayı anlayabilmek için şöyle basit bir sayfada deneme yapıyorum.
gh.txt dosyasında ğüşıöçİĞÜŞÖÇ yazıyor. bu sayfayı çalıştırdığımda ekrana yine ğüşıöçİĞÜŞÖÇ basıyor ancak veritabanına yazılan bu: ğüşıöçİĞÜŞÖÇPHP Kodu:<?
mysql_connect("localhost", "root", "root") || die ("MySQL hatasi");
mysql_select_db("yeni") || die ("MySQL hatasi2");
mysql_query("SET NAMES 'latin5'");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'") or mysql_error();
mysql_query("SET CHARACTER SET latin5") or mysql_error();
$fp=fopen("gh.txt", "r");
$oku=fread($fp, 1024);
mysql_query("insert into kitaplar values('', '$oku')");
echo $oku;?
Bir de anlayamadığım; bu PHP sayfasını not defteri ile açıp insert komutundaki $oku yerine ğüşıöçİĞÜŞÖÇ yazdığımda veritabanına istediğim gibi yazıyor :S
PHP dosyan ya da txt dosyan UTF-8'le kodlanmış olabilir mi?
Öyle birşeyin olabileceğini düşünmedim değil. Not defterini kurcaladım ancak kodlama ile ilgili bir bilgi, bir ayar bulamadım
Düzeltme: Farklı kaydet diyerek dosyanın kodlamasını ANSI olarak seçince problem ortadan kalktı. Teşekkürler.
Şöyle bir problemim daha var:
Bu PHP sayfası ANSI kodlamalı bir dosya oluştururkenPHP Kodu:<?
$fp=fopen("sayfa.txt", "w");
fwrite($fp," hgfhlsereqsfcc");
?>
bu ise utf-8 kodlamalı bir dosya oluşturuyor.PHP Kodu:<?
$fp=fopen("sayfa.txt", "w");
fwrite($fp, "hgfhlsereqsfccöçşğüıÖÇŞĞÜI");
?>
Bana ise içinde Türkçe karakterler içeren bu veriyi ANSI kodlamalı olarak oluşturması lazım.![]()