• 30-10-2014, 02:14:22
    #1
    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
  • 30-10-2014, 07:15:33
    #2
    Misafir
    Tahminime 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:39
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Tahminime 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.
    unicode yapınca düzeldi kardeş eyvallah yalnız şunu öğrenmek istiyorum meta taglara arasına utf-8 ekledim. sayfanın dili kodlaması utf-8 olurmu bunu eklemekle
  • 30-10-2014, 11:42:04
    #4
    Veritabanı olarak mysql kullanıyorsan bu tip sorunlarla karşılaşman mümkün mssql kullanıncada sorun olabiliyor.
    Tavsiyem klasik asp yi bırak asp.net e yönel.
  • 30-10-2014, 11:58:02
    #5
    Misafir
    elazigfirat adlı üyeden alıntı: mesajı görüntüle
    unicode yapınca düzeldi kardeş eyvallah yalnız şunu öğrenmek istiyorum meta taglara arasına utf-8 ekledim. sayfanın dili kodlaması utf-8 olurmu bunu eklemekle
    Kullandığınız editörün ayarlarını da yapın.

    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:09
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Kullandığınız editörün ayarlarını da yapın.

    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.
    arkadaşlar sorun hala devam ediyor. yapmak istediğim şey sitenin tüm kodlamasının utf-8 olması.

    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 &uuml; 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:22
    #7
    Yı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:02
    #8
    eKahraman adlı üyeden alıntı: mesajı görüntüle
    Yı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); }
    );}
    arkadaşlar hepinize teşekkür ederim sağolun sizden çok şey öğrendim. Ancak sorun bir öyle bir böyle devam ediyor.

    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:47
    #9
    sqlvrt="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.