11 Ocak 2011, Salı
UTF-8 ve UTF-16 arasındaki fark?
UTF-8 ve UTF-16 arasındaki fark? Neden bunlara ihtiyacımız var mı?
MessageDigest md = MessageDigest.getInstance("SHA-256");
String text = "This is some text";
md.update(text.getBytes("UTF-8")); // Change this to "UTF-16" if needed
byte[] digest = md.digest();
CEVAP
11 Ocak 2011, Salı
Web etrafında bu konuda iyi bir yazı çok olduğuna inanıyorum, ama burada kısa bir özetidir.
Her ikisi de UTF-8 ve UTF-16 değişken uzunlukta kodlama. Ancak, UTF-8 karakter UTF-16 karakter uzunluğu 16 bit ile başlar iken 8 bit en az işgal olabilir.
UTF-8 ana artıları:
- Hayır desenli basamak, Latin karakterler gibi temel ASCII karakterler, vb. US-ASCII aynı temsil eden bir bayt alır. Bu şekilde US-ASCII dizeleri tüm geçerli birçok durumda iyi geriye doğru uyumluluk sağlar UTF-8 olur.
- Kullanmak için boş sonlandırılmış bir dize izin yok boş bayt, bu geriye uyumluluk çok büyük bir anlaşma sunuyor.
UTF-8 ana eksileri:
- Birçok ortak karakter oluşturma ve korkunç bir dize uzunluğu hesaplama yavaşlatır farklı uzunlukta olması.
UTF-16 ana artıları:
- En makul karakter, Latin, Kiril, Japonca, Çince gibi 2 bayt ile temsil edilebilir. Gerçekten egzotik karakterler gerekli olmadıkça, bu 16-bit UTF-16 alt dizin oluşturma hızı olan sabit uzunlukta kodlama olarak kullanılabilir anlamına gelir.
UTF-16 ana eksileri:
- Null çok US-ASCII bayt boş sonlandırılmış hiçbir dizeleri ve harcanan bellek bir sürü anlamı olan dizeler.
Genel olarak, UTF-16, UTF-8 metin dosyaları ve ağ protokolleri için çok iyi olsa da, genellikle bellek için daha iyi bir temsilidir.
Bunu Paylaş:
Uygulama/arasındaki fark x-javascript ...
Nginx ve Unicorn arasındaki fark nedir...
Pencere arasındaki fark.konum:href ve ...
Google Chrome ile iki öğesi stilleri a...
Kır arasındaki fark ve PHP devam mı?...