Câu trả lời đơn giản cho câu hỏi được hỏi là các chuỗi ký tự có sẵn khác nhau tùy theo từng nền tảng.
Tuy nhiên, có sáu yêu cầu phải có mặt, vì vậy hằng số có thể đã được thực hiện cho những người từ lâu. Tôi không biết tại sao họ không.
JDK 1.4 đã làm một điều tuyệt vời bằng cách giới thiệu loại Charset. Tại thời điểm này, họ sẽ không muốn cung cấp các hằng chuỗi nữa, vì mục tiêu là để mọi người sử dụng các phiên bản Charset. Vậy tại sao không cung cấp sáu hằng số Charset tiêu chuẩn? Tôi đã hỏi Martin Buchholz vì anh ta ngồi ngay cạnh tôi và anh ta nói rằng không có lý do nào thực sự đặc biệt, ngoại trừ vào thời điểm đó, mọi thứ vẫn còn nửa vời - quá ít API JDK đã được trang bị thêm chấp nhận Charset, và trong số đó, quá tải Charset thường hoạt động kém hơn một chút.
Thật đáng buồn khi chỉ trong JDK 1.6, cuối cùng họ đã hoàn thành việc trang bị mọi thứ với tình trạng quá tải Charset. Và rằng tình huống hiệu suất ngược này vẫn tồn tại (lý do tại sao cực kỳ kỳ lạ và tôi không thể giải thích nó, nhưng có liên quan đến bảo mật!).
Câu chuyện dài - chỉ cần xác định các hằng số của riêng bạn hoặc sử dụng lớp Charsets của Guava mà Tony the Pony liên kết đến (mặc dù thư viện đó chưa thực sự được phát hành).
Cập nhật: một StandardCharsets
lớp nằm trong JDK 7.
MessageDigest#getInstance()
ra.