Karşılaştığınız hatayı daha önce görmedim bir bilgim yok. Ancak kastettiğinizi anladım.
Sorunuzun kısa cevabı şu, bu karakterler oraya o şekilde yazılmadılar. Sadece yanlış yorumlandılar.
Meraklısı olduğunuz için biraz teknik konuşmamda sakınca yoktur sanırım.
Tüm Reklamları Kapat
Bildiğiniz üzere bilgisayar 1 ve 0'lar ile çalışır ve sorunuzun cevabı burada yatıyor.
Bilgisayar mühendisleri işlemciye belirli komutlar vermek, bellekteki bilgileri etkili şekilde depolamak ve kullanmak için teknikler kullanır.
Siz herhangi bir yere yazı yazdığınızda aslında arka tarafta belleğe ardışık olarak sayılar girer. Bu sayılar ikilik sistemde girilir yani 1 ve 0'lar kullanılır. Her sayı bir karaktere denk gelir. Örneğin ASCII tabloya bakabiliriz.
ascii tablo
65 sayısı büyük A harfine denk geliyor. 65 bir sayı olduğu için ikilik sistemde yazmamız son derece basit. Bu sayede bilgisayar bunu belleğe, işlemciye ve diske taşıyabiliyor.
Tüm Reklamları Kapat
İşte bu sayıları harflerle eşleştirme işine biz character encoding diyoruz. Ancak yalnızca bir encoding türü yok. Eğer bir şekilde diskteki bilgiyi yanlış encoding ile okumaya kalkarsanız bitlerinizin kurallarında ve karakter tablonuzda uyuşmazlık çıkacaktır. Sonuç olarak bitleriniz yanlış yorumlanacaktır. Siz oraya X encoding türünde "elma" yazdıysanız Y enconding türünde okurken "asdadsada" okuyabilirsiniz.
Tabi hepsi ASCII kadar basit değiller daha kompleks kurallar da var. Başka örnekler daha vereyim. Meşhur enconding türlerinden birisi UTF-8'dir.
utf-8 kuralları
Bu encoding'e göre eğer okunan bir byte 0 ile başlarsa o zaman sonraki 7 bit okunur ve denk geldiği sayı tablodan bulunur.
Eğer okunan byte iki adet 1 ve 0 (110) ile başlıyorsa o zaman sonraki byte'ı da okur ve toplamda 2 byte uzunluğunda (yani ASCII tablodaki sayılardan daha uzun) bir sayı okumuş olur. Bu şekilde 4 byte'a kadar çıkabilir.
Daha çok byte, daha uzun sayı menzili demek. Bu da daha fazla karakteri temsil edebilmek demek.
İşte olay bundan ibaret. Bu yazılar oraya o şekilde yazılmadılar. Diskteki bilgiler aynı. Sorun, onu yorumlayan kısımda.
Kaynaklar
Wikipedia. Ascii-Compatible Variable-Width Encoding Of Unicode, Using One To Four Bytes. (22 Kasım 2001). Alındığı Tarih: 23 Ocak 2024. Alındığı Yer: Wikipedia
| Arşiv Bağlantısı
Bu cevap, soru sahibi tarafından en iyi cevap seçilmiştir. Ancak bu, cevabın doğru olduğunu garanti etmez.
4
0
Paylaş
Cevap Ver
Evrim Ağacı Soru & Cevap Platformu, Türkiye'deki bilimseverler tarafından kolektif ve öz denetime dayalı bir şekilde sürdürülen, özgür bir ortamdır. Evrim Ağacı tarafından yayınlanan makalelerin aksine, bu platforma girilen soru ve cevapların içeriği veya gerçek/doğru olup olmadıkları Evrim Ağacı yönetimi tarafından denetlenmemektedir. Evrim Ağacı, bu platformda yayınlanan cevapları herhangi bir şekilde desteklememekte veya doğruluğunu garanti etmemektedir. Doğru olmadığını düşündüğünüz cevapları, size sunulan denetim araçlarıyla işaretleyebilir, daha doğru olan cevapları kaynaklarıyla girebilir ve oylama araçlarıyla platformun daha güvenilir bir ortama evrimleşmesine katkı sağlayabilirsiniz.