Sorulan sorunun basit cevabı, mevcut karakter dizgilerinin platformdan platforma değiştiğidir.
Bununla birlikte, mevcut olması gereken altı tane var, bu yüzden uzun zaman önce olanlar için sabitler yapılabilirdi. Neden olmadıklarını bilmiyorum.
JDK 1.4, Charset türünü tanıtarak harika bir şey yaptı. Bu noktada, hedef, Charset örneklerini kullanan herkesi elde etmek olduğundan, artık String sabitleri sağlamak istemezlerdi. Öyleyse neden altı standart Charset sabitini vermiyorsunuz? Martin Buchholz'a hemen yanıma oturduğundan beri sordum ve o zamanlar, özellikle hala harika bir neden olmadığını söyledi, o zamanlar hala yarı pişmişti - çok az JDK API'sinin yenilenmesi Charset'i kabul edin ve olanlardan Charset aşırı yükleri genellikle biraz daha kötü performans gösterdi.
Sadece JDK 1.6'da Charset aşırı yükleriyle her şeyi donatmayı bitirmeleri üzücü. Ve bu geriye dönük performans durumunun hala var olduğunu (inanılmaz derecede garip ve açıklayamıyorum, ancak güvenlikle ilgili!).
Uzun öykü kısa - sadece kendi sabitlerinizi tanımlayın veya Pony Tony'nin bağlı olduğu Guava'nın Charsets sınıfını kullanın (bu kütüphane henüz gerçekten yayınlanmamıştır).
Güncelleme: bir StandardCharsets
sınıf JDK 7'de.
MessageDigest#getInstance()
.