Beni çok şaşırtan bir şey, çok fazla yazılımın eş anlamlı olarak "karakter kümesi" ve "kodlama" terimlerini kullanmasıdır.
İnsanlar bir unicode "kodlamasına" atıfta bulunduğunda, her zaman unicode karakterleri ASCII veya UTF-8 gibi bir bayt dizisi olarak temsil etmek için bir kural kümesi anlamına gelir. Bu makul ve sezgisel görünüyor; fikir, belirtilen kuralları kullanarak bu karakterleri bayt olarak "kodladığınız" dır.
Bu kural kümeleri bazen yalnızca tüm unicode karakterlerin bazı alt kümelerini "kodlama" yeteneğini sağladığından, "karakter kümesinin" kısaltması olan "karakter kümesinin" bir dizi unicode karakter anlamına geleceğini düşünebilirsiniz . bu karakterler kodlanır. Bu nedenle bir kodlama, bir karakter takımı (yalnızca 128 karakteri kodlamak için kuralları olan ASCII gibi bir kodlama, bu 128 karakterin karakter kümesiyle ilişkilendirilir), ancak bir karakter grubunun bir kodlama (örneğin UTF-8, UTF) içermesi anlamına gelir. -16 ve UTF-32'nin hepsi farklı kodlamalardır, ancak aynı karakter kümesini kodlayabilir).
Yine de - ve işte sorumun temel noktası - "charset" kelimesinin gerçek dünya kullanımı, kelimenin yapısının ima edeceği şeyle eşleşmiyor. Hemen hemen her zaman "kodlama" anlamında kullanılır.
Örneğin:
charset
HTML özellik bir kodlama belirtmek için kullanılırCharset
Java'daki kodlamalar kodlamadırcharset
s vecharacter sets
MySQL'de bir kez daha kodlama
Bu meraklı (ab) dil kullanımı kaç yaşında ve bu 'sezgi' karşı-sezgisel tanımı nasıl ortaya çıktı? Belki de pratikte, kullanılan kodlamalar ile destekledikleri karakter kümeleri arasında birebir eşleme olduğu bir zamandan mı kaynaklanıyor ? Yoksa kelimenin bu tanımını belirleyen bazı etkili standartlar veya spesifikasyonlar var mıydı?
charset
eskidir Unicode standardı, bu yüzden bir "bire-bir eşleme" olmayabilirdi ederken, bir belge için gerekli karakterler kodlama seçimi zorlamak eğiliminde. Ama kelimenin gerçek tarihini araştıracak zamanım yok ...