2011-12-14 32 views
14

Tôi đang phát triển một ứng dụng đọc văn bản thuần túy. Đôi khi, ứng dụng không thể tự động xác định mã hóa của tệp, do đó, người dùng cần chọn mã hóa từ danh sách mã hóa. Nếu danh sách này chứa tất cả các mã hóa được hỗ trợ, nó sẽ quá dài. Tôi muốn cung cấp một danh sách đơn giản, chỉ chứa các mã hóa phổ biến nhất của mỗi ngôn ngữ.Mã hóa phổ biến nhất của mỗi ngôn ngữ là gì?

Đây là một số mối quan hệ tôi được biết:

  • truyền thống Trung Quốc: Big5
  • Tiếng Trung giản thể: GB18030
  • Nhật Bản: Shift-JIS, EUC-JP
  • Nga: KOI8-R

Nếu bạn biết mã hóa phổ biến nhất của ngôn ngữ khác, vui lòng cho tôi biết.

+1

Bạn có cố tình bỏ qua các họ Unicode không? UTF-8, UTF-16 và UTF-32 chắc chắn được sử dụng ít nhất là những cái bạn đã đặt tên. –

+0

@TomvanderWoerdt Có, tôi cần danh sách mã hóa vùng, loại trừ mã hóa Unicode. Ví dụ, GB18030 là tiêu chuẩn quốc gia của PRC, vì vậy nó được sử dụng rộng rãi ở Trung Quốc đại lục. – user805627

Trả lời

42

FWIW, đây là những miền địa phương Windows XP được phân nhóm theo mã hóa ký tự mặc định:

  • Big5: zh_HK, zh_MO, zh_tw
  • GBK (≈GB2312): zh_CN, zh_SG
  • windows-31J (≈Shift_JIS): ja_jp
  • windows-874 (≈TIS-620, ISO-8859-11): th_TH
  • windows-949 (≈EUC-KR): ko_KR
  • windows-1250: bs_BA, cs_CZ, hr_BA, hr_HR, hu_HU, pl_PL, ro_RO, sk_SK, sl_SI , sq_AL, sr_BA, sr_SP
  • windows-1251: az_AZ, be_BY, bg_BG, kk_KZ, ky_KG, mk_MK, mn_MN, ru_ru, sr_BA, sr_SP, tt_RU, uk_UA, uz_UZ
  • windows-1252 (≈ ISO-8859-1): af_ZA, arn_CL, ca_ES, cy_GB, da_DK, de_AT, de_CH, de_DE, de_LI, de_LU, en_AU, en_BZ, en_CA, en_CB, en_GB, en_IE, en_JM, en_NZ, en_PH, en_TT, en_US, en_ZA, en_ZW, es_AR, es_BO, es_CL, es_CO, es_CR, es_DO, es_EC, es_ES, es_GT, es_HN, es_MX, es_NI, es_PA, es_PE, es_PR, es_PY, es_SV, es_UY, es_VE, eu_ES, fi_FI, fil_PH, fo_FO, fr_BE, fr_CA, fr_CH, fr_FR, fr_LU, fr_MC, fy_NL, ga_IE, gl_ES, id_ID, is_IS, it_CH, it_IT, iu_CA, iv_IV, lb_LU, moh_CA, ms_BN, ms_MY, nb_NO, nl_BE, nl_NL, nn_NO, ns_ZA, pt_br, PT_PT, qu_BO, qu_EC, qu_PE, rm_CH, se_FI, se_NO, se_SE, sv_FI, sv_SE, sw_KE, tn_ZA, xh_ZA, zu_ZA
  • windows-1253: el_GR
  • windows-1254 (≈ISO -8859-9): az_AZ, tr_TR, uz_UZ
  • windows-1255: he_IL
  • windows-1256: ar_AE, ar_BH, ar_DZ, ar_EG, ar_IQ, ar_JO, ar_KW, ar_LB, ar_LY, ar_MA, ar_OM, ar_QA, ar_SA, ar_SY, ar_TN, ar_YE, fa_IR, ps_AF, ur_PK
  • windows-1257: et_EE, lt_LT, lv_LV
  • windows-1258: vi_VN

most common encodings overall on the Web:

  1. UTF-8 (89,2%)
  2. ISO-8859-1 (5,0%)
  3. Windows-1251 (1,6%)
  4. Shift JIS (0,9%)
  5. Windows-1252 (0,8%)
  6. GB2312 (0,7%)
  7. EUC -KR (0,4%)
  8. EUC-JP (0,3%)
  9. GBK (0.3%)
  10. ISO-8859-2 (0,2%)
  11. Windows-1250 (0,2%)
  12. ISO-8859-15 (0,1%)
  13. Windows-1256 (0,1%)
  14. ISO-8859-9 (0,1%)
  15. Big5 (0,1%)
  16. Windows-1254 (0,1%)
  17. Windows-874 (0,1%)
+1

+1 cho số liệu thống kê –

1

Tôi muốn giới thiệu cấu trúc menu giống như cấu trúc được trình duyệt sử dụng. Ví dụ: Firefox: Xem -> Mã hóa ký tự -> Mã hóa khác -> Đông Á -> Trung Quốc/Nhật/Hàn Quốc. (ok, dễ dàng hơn nếu bạn chỉ cần nhìn). Và Xem -> Mã hóa -> Thêm trong IE.

Có vẻ như quá sâu và khó khăn, nhưng nó rất quen thuộc. Và không thả mã hóa hữu ích (Ví dụ: Tại sao KOI8-R cho tiếng Nga? Và điều gì sẽ xảy ra nếu tôi sử dụng Windows 1251 và không có trong danh sách?)

2

Bản nháp HTML5 chứa bảng default encodings for languages, phản ánh những gì được coi là phổ biến. Tuy nhiên, lưu ý rằng nó được cho là dựa trên miền địa phương của người dùng, tức là ngôn ngữ của trình duyệt hoặc hệ điều hành, không phải ngôn ngữ của tài liệu - rõ ràng là vì sau này thường không xác định, ít nhất trước khi bạn thực sự đọc tài liệu, dựa trên một số giả định về mã hóa.

Tôi nghĩ bạn có thể thực hành sao chép danh sách mã hóa trong trình duyệt web phổ biến. Nếu nó hoạt động tốt ở đó, nó có thể hoạt động khá tốt trong ứng dụng của bạn. Các trình duyệt thực hiện một số điều thông minh với danh sách và thứ tự của nó, nhưng trong thực tế, tôi nghĩ rằng nó sẽ đủ để có một danh sách ngắn như utf-8, utf-16, windows-1252, và có thể một vài người khác, theo sau là một tùy chọn nhận được danh sách đầy đủ. Lưu ý rằng mặc dù utf-16 là thực tế không sử dụng và vô ích cho các trang web, nó là phổ biến cho các tập tin văn bản đơn giản xung quanh. Điều quan trọng là đặt tên cho các mã hóa tốt, tốt nhất là với tên tiếng Anh thông dụng (hoặc ngôn ngữ khác) cùng với tên "bộ ký tự" của IANA trong ngoặc đơn — giống như các trình duyệt.

Các vấn đề liên quan