arkadaşlar kafayı yiyeceğim. sitemde türkçe karakter sorunu yaşıyorum.
sitemin head kodları arasına <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> kodlarını yazdığımda veritabanımdan çektiğim veriler normal görünüyor yani türkçe karakterlerde sorun yok ancak sayfa içerisine elle manuel yazdığım metinlerdeki türkçe karakterlerde sorun oluyor bozuluyor. yani veritabından gelen bilgilerde sorun yok elle yazılanlarda var. ayrıca kaynağı görüntüle dediğimde veritabanından gelen ü,ç gibi karakterlerin de bozuk göründüğünü görüyorum.
yapmak istediğim ise siteyi utf-8 olarak kodlamak nerede yanlış yapıyorum
UTF-8 Türkçe karakter sorunu
8
●13.993
- 30-10-2014, 02:14:22
- 30-10-2014, 07:15:33MisafirTahminime göre dosyanın karakter kodlamasından kaynaklanıyor.
Aynı dosyayı Notepad ile açın. Farklı Kaydet'e tıklayın. Altta Ansi değil, Unicode seçili olsun. Bu şekilde kaydettikten sonra sorun devam ediyorsa, Response.Charset = "utf8" satırını ekleyin.
Bunlara ek olarak;
Session.LCID = 1055
Response.ContentType = "text/html"
satırlarını da ekleyebilirsiniz. - 30-10-2014, 11:24:39Misafir adlı üyeden alıntı: mesajı görüntüle
- 30-10-2014, 11:58:02Misafirelazigfirat adlı üyeden alıntı: mesajı görüntüle
Dreamweaver için;
Edit > Preferences > New Document > Default Encoding > Unicode (UTF-8)
Dosya farklı kaynaktan gelirse, Notepad ile Unicode olarak farklı kaydedin ve düzenlemeye öyle devam edin. - 31-10-2014, 01:07:09Misafir adlı üyeden alıntı: mesajı görüntüle
Sayfa meta taglarına utf-8'i ekliyorum ve sayfalarımı notepad ile açıp ANSI olarak kaydettiğimde türkçe karakter sorunu olmuyor ancak sayfa kaynağını görüntüle dediğimde veritabanımdan çekilen verilerdeki türkçe karakterler bozuluyor.
yani sitenin görünen kısmında sıkıntı yok kaynak kodlarındaki türkçe karakterler bozuluyor. mesela ü harfi ü oluyor.
unicode yaptığımda hata veriyor. internal server error hatası.
utf-8 yaptığımda türkçe karakter sorunu veriyor.
access veritabanı kullanıyorum. sanırım kaynak kodlardaki türkçe karakter sorunu veritabanımın dili utf-8 değil.
ansı olarak kullansam ve meta taglara utf-8 kodunu eklesem sayfalarım utf-8 olurmu bunu merak ediyorum - 31-10-2014, 03:25:22Yıllardır birçok projede kullandığım yapıyı yazıyorum. Aynısını uygularsan hem direk .asp dosyalarında hemde "asp ajax" post olaylarında hemde "asp mssql" bağlantılarında hiç sorun çekmeyeceksin.
1. Mssql Collation Turkish_CI_AS
2. Asp dosyalarını Notepad ile açıp Farklı Kaydet'e tıkla, UTF-8 seçip kaydet.
3. <HEAD> etiketinden hemen sonra şu kodu ekle <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4. Asp sayfasının en başına <% Response.Charset="utf-8" %> ekle. (her asp sayfasının en üstünde conn.asp tarzı sabit bir sayfa inculede ediyorsan sadece conn.asp ye eklemen de yeterli olacaktır.)
Sıralamayı verdiğim gibi uygula. bozulan yerler olursa elle bir kereliğe mahsus düzelt.
Dreamweaver da arkadaşın dediği gibi Unicode (UTF-8) ortamında calış.
Edit > Preferences > New Document > Default Encoding > Unicode (UTF-8)
Ayrıca ajax post işlemlerinde js dosyalarınızda UTF-8 olarak kaydedin. örnek bir post yazıyorum.
function gonder(ad,soyad){
$.post("gonder.asp", {'degisken1':ad, 'degisken2':soyad},
function(cevap) { alert(cevap); }
);} - 01-11-2014, 01:58:02eKahraman adlı üyeden alıntı: mesajı görüntüle
1.sayfa başına response.charset kodunu ekledim,
2. head etiketinden sonra utf 8 kodunu da ekledim.
3. sayfalarıma include olan tüm sayfaları da notepad ile açtım ve onuda utf-8 olarak kaydettim.
sayfa içerisine manuel yazdığım metinler bozuldu ama veritabanımdan gelen verilerde sorun yoktu.
Daha sonra; veritabanıma bağlantı sayfamda;
Response.Charset = "windows-1254"
Session.LCID = 1055
Session.CodePage = 1254
Set baglanti = Server.CreateObject("ADODB.Connection")
baglanti.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("" & db & "")
kodları vardı
Response.Charset = "windows-1254"
Session.LCID = 1055
Session.CodePage = 1254
bu bölümü sildim.
sayfa içerisine manuel yazdığım metinler düzeldi ama bu seferde veritabanımdan çektiğim verilerdeki türkçe karakterler ? soru işareti oldu karakterler bozuldu.
o sildiğim kodların yerine
Response.Charset = "utf-8"
Session.LCID = 1055
Session.CodePage = utf8
kodlarını ekledim yine düzelmedi.
ilginç olan herhangi bir sayfayı notepad ile açıp utf-8 olarak kaydettiğimde sorun düzeliyor ama 1-2 sayfa dolaşınca yine ? karakteri geri dönüyor.
galiba sorun benim veritabanımda access veritabanı kullanıyorum. bu veritabanını da mı utf-8 e göre ayarlayacağım öyleyse nasıl - 07-11-2014, 16:51:47sqlvrt="test"
sqluid="root"
sqlpas="123456"
sqlsrv="localhost"
set db=Server.Createobject("ADODB.Connection")
db.open "Driver={MySQL ODBC 3.51 Driver};Server="&sqlsrv&";Database="&sqlvrt&";User ="&sqluid&";Password="&sqlpas&""
db.Execute "SET NAMES 'utf8'"
db.Execute "SET CHARACTER SET utf8"
db.Execute "SET COLLATION_CONNECTION = 'utf8_bin'"
mysql bağlantını yaparken sorunu düzelticeksin dostum. yukarıdaki gibi bağlantını yaparsan sorun düzelicektir.
mysql odbc sürümün 3.51 degilse onu düzelt sadece sorun ortadan kalkıcaktır.