Forum
Php ile Mssql veritabanından verileri çekerken türkçe karakter problemi yaşıyorum.
Sadece veritabanından gelen verilerde bu sıkıntı oluyor.
Database collaction=TURKISH_CI_AS ve veriler türkçe kayıtlı
$conn_str = "$driver;$server;$port;$database;";
$conn=odbc_connect($conn_str,$user,$pass);
Gelen veri; y�k�
Mysql den kontrol ettiğinizde veriler türkçe olarak kayıtlı mı?
Meta tagları kontrol ediniz birde
Verilerin kayıt olduğu ve verileri çektiğiniz sayfaların head tagı içerisine
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Bu meta tagı kullanarak tekrar deneyiniz.
Kişisel bir olay
merhaba,
referans adrese göre bağlantı cümlenizi gözden geçirebilirsiniz.
http://www.anarsamadov.net/turkce-karakter-sorunu-kesin-cozum.html
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Maalesef, meta taglarını denemiştim zaten. Olmuyor. Diğer linkte paylaşılanar da mysel komutları. Dediğim gibi mysql_query() komutu kullanmıyorum, çünkü mssql e bağlanıyorum. odbc_connect , odbc_exec veya odbc_execute için "set names utf8" komutları da yok.
SORUN ÇÖZÜLDÜ !!!
Bahsi geçen problemi odbc_connect() ile bağlanırken yaşıyodum. PDO ile bağlandım ve sorunu çözebildim.
PDO bağlantısında utf 8 olduğunu belirttiğimiz bir komut olduğundan sıkıntı çekmiyorum.
Bağlantı kodları aşağıdadır.
$server = "sqlsrv:Server=ServerName;Database=DatabaseName";
$username = "ABC";
$password = "ABC";
try {
$conn = new PDO($server, $username, $password);
$conn -> exec("SET NAMES 'UTF-8'");
} catch (PDOException $e) {
var_dump($e->errorInfo);
}
Encode attribute varsa bunada bakınız .
culture vs.
.NET kafasıyla düşünüyorum 🙂
SORUN ÇÖZÜLDÜ !!!
PDO ile bağlanınca, PDO komutlarından biri işime yaradı ve sorunum çözüldü.
$server = "sqlsrv:Server=ServerName;Database=DatabaseName";
$username = "ABC";
$password = "ABC";
try {
$conn = new PDO($server, $username, $password);
$conn -> exec("SET NAMES 'UTF-8'");
} catch (PDOException $e) {
var_dump($e->errorInfo);
}