folder Tahribat.com Forumları
linefolder C - C++
linefolder Türkçe Karakterlerin Ascii Kodları Sorunu



Türkçe Karakterlerin Ascii Kodları Sorunu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek

    Örneğin, Ş nin ascii kodu 158.

     

    C de,

    printf("%c", 158);

    Yazdığımda Ş olarak ekrana çıkıyor.

     

    Fakat bir txt içinde ki Ş yi, bir int değişkenine atıp okuduğumda,

    Ve yazdırdığımda Farklı bir karakter çıkıyor.

    Karakterin kodu ise -34 gözüküyor.

     

    Bunun sebebi ne ?

    Bana göre Ş nin ascii  kodu int değişkeninde tutulacak sonrada yazılacaktı.

     


    https://www.youtube.com/watch?v=WC3-71NKwPw
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KizilS
    KizilS's avatar
    Kayıt Tarihi: 21/Nisan/2015
    Homo

    Ascii table da Ş olduğunu hatırlamıyorum

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    karakteri nasıl direk int e atıyorsun? ekrana yazdırdığın da muhtemelen farklı bir değer alırsın.. 

    bunun yerine okuduğun karakter char tipinde olduğu için bunu byte a kest ederek ascii kodunu alabilrisin ondan sonra da onun değerini int e eşitleyebilirsin, bu şekilde yaparsan dediğin ascii kodu elde edersin


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zeybekustasi
    zeybekustasi's avatar
    Kayıt Tarihi: 24/Mayıs/2012
    Erkek
    unbalanced bunu yazdı

    karakteri nasıl direk int e atıyorsun? ekrana yazdırdığın da muhtemelen farklı bir değer alırsın.. 

    bunun yerine okuduğun karakter char tipinde olduğu için bunu byte a kest ederek ascii kodunu alabilrisin ondan sonra da onun değerini int e eşitleyebilirsin, bu şekilde yaparsan dediğin ascii kodu elde edersin

    C o açıdan esnek değil mi ki ?

    Her karakterin asci karşılığı karakterin görüntü değerine eşit diye biliyorum. Tekrar  Denedim A yazdım txt ye 65 olarak aldı.

    C de cast olarak byte var mı bilemiyorum. Otomatik tamamlamada yok :) Yazdım hata verdi.


    https://www.youtube.com/watch?v=WC3-71NKwPw
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    C kullanmıyorum hocam pek, şimdi yeni yeni obj. C ye geçtim 

    ama dosya okurken o gelen verinin türü nasıl C de bilmiyorum ama Char tipinde okutman gerek eğer direk int tipi olarak okutursan ascii vereceğini sanmıyorum ama A için 65 i alabiliyorsan tr karakteriyle ilgili sıkıntı olmuş  olabilir, C de onla ilgili bi sıkıntı var zaten


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fatih54
    Fatih54's avatar
    Kayıt Tarihi: 16/Ağustos/2012
    Erkek
    txt den okudugun char i direk ekrana yansittiginda sorun oldu mu
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hannibal_King
    Hannibal_King's avatar
    Kayıt Tarihi: 22/Ağustos/2010
    Erkek
    unbalanced bunu yazdı

    karakteri nasıl direk int e atıyorsun? ekrana yazdırdığın da muhtemelen farklı bir değer alırsın.. 

    bunun yerine okuduğun karakter char tipinde olduğu için bunu byte a kest ederek ascii kodunu alabilrisin ondan sonra da onun değerini int e eşitleyebilirsin, bu şekilde yaparsan dediğin ascii kodu elde edersin

    char türden bi veriyi direk atabilir zaten int türden bir değişkene.Hatırladığım kadarı ile zaten arka planda hepsi int üzerinden dönüyo olması lazım.

     

    Dosyadan okuma yaparken demekki karakter olarak alamıyor Ş yi.Dosyalama işlemleri konusunu da iyi bilmiyorum.Aynı işlemin tersini konsolda dene istersen hocam.

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Hocam turkish character set içinden lookup yapman lazım doğrusunu almak için

     

    unsigned char turkish_set[256]= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
     14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
    33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 246,247,248,249,
    250,251,252,253,254,255, 48, 49, 50, 51, 52, 53, 54, 55, 57, 59, 63, 65, 67,
    69, 73, 75, 79, 81, 83, 85, 87, 89, 93, 95, 97, 99,103,105,109,111,113,115,
    117,119,120,121,122,123, 124, 56, 58, 60, 64, 66, 68, 70, 74, 78, 80, 82,
    84, 86, 88, 90, 94, 96, 98,100,104,106,110,112,114,116,118,125,126,127,
    128,129, 130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,
    146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161, 162,
    163,164,165,166,167,168,169,170,171,172,173,174,175,176,177, 178,179,
    180,181,182,183,184,185,186,187,188,189,190,191,192,193, 194,195,196,
    197,198,199,200, 61,201,202,203,204,205,206,207,208, 71,209,210,211,212,
    213, 91,214,215,216,217,218,107, 77,101,219, 220,221,222,223,224,225,226,
    62,227,228,229,230,231,232,233,234, 72,235,236,237,238,239, 92,
    240,241,242,243,244,108, 76,102,245 };
    

    Buradan char turkish_set[i] şeklinde lookup yapıp bastır


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YeniHarman
    YeniHarman's avatar
    Kayıt Tarihi: 17/Haziran/2012
    Erkek

    Ascii tablosunun 127'den sonraki kısmı standart değil. Bende Ş karakteri 158 olabilir de olmayabilir de. Hatta kullandığım iki fonttan birinde 158 Ş olur, diğerinde Ğ olur. Bunu bilemeyiz.

    Sonuç olarak: Unicode'a geçin.


    Olaylara karışmayın!
Toplam Hit: 2233 Toplam Mesaj: 9