2012-07-15 8 views
24

Một số httpclient yêu cầu tôi cung cấp một chuỗi ký tự.Tên mã hóa UTF8 hay UTF-8?

Tôi tự hỏi có nên cung cấp UTF8 hoặc utf8 hoặc UTF-8 không?

Đặc biệt khi gọi Charset.forName (enc)

Trả lời

19

UTF-8 là một trong những tiêu chuẩn và hầu hết mọi người sử dụng nó: D

Dưới đây là danh sách các bảng mã được dùng trong Java:

http://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

NB
Nếu các lớp nhà máy/singleton có thể lấy Enum làm thông số, cũng như String, Enum là, IMO, luôn là một tùy chọn an toàn hơn và tốt hơn.

+2

đúng. Luôn luôn sử dụng 'UTF-8', nơi bạn có thể. Một vài lần bạn sẽ gặp phải 'utf8' ([Perl là một ví dụ rất đáng sợ] (http://www.effectiveperlprogramming.com/blog/1292)), thì bạn nên dành chút thời gian để tìm hiểu xem các nhà thiết kế có nghĩ rằng' utf8 của họ không 'khác với' UTF-8'. – Konerak

+0

Tốt nhất, tôi hoàn toàn quên mất nó. Nó đã được một thời gian kể từ khi tôi mã hóa một cái gì đó trong Perl (và tôi hy vọng tôi sẽ không phải làm điều đó nữa xD) – Lopina

+0

@Konerak Ai đã viết việc thực hiện perl có thể muốn xem liệu anh ta có thể nhận được số lượng chương trình xử lý unicode sai từ 80% vào phạm vi 99%. Rất đáng sợ. – Voo

10

Dễ sử dụng hơn StandardCharsets.UTF_8 vì nó giúp bạn tiết kiệm được việc phải đối phó với UnsupportedEncodingExceptions