每种语言最常见的编码是什么?

What is the most common encoding of each language?

我正在开发一个纯文本阅读器应用程序。有时应用程序无法自动确定文件的编码,因此用户需要从编码列表中选择一种编码。如果此列表包含所有支持的编码,它将太长。我想提供一个简化的列表,只包含每种语言最常见的编码。

这就是我所知道的一些关系:

  • 繁体中文:Big5
  • 简体中文:GB18030
  • 日语:shift-jis、euc-jp
  • 俄罗斯:KII8R

如果你知道其他语言最常见的编码,请告诉我。


fwiw,这里是按默认字符编码分组的Windows XP区域设置:

  • Big5:zh ou香港、zh ou mo、zh ou tw
  • gbk(≈gb2312):zh_-cn,zh_-sg
  • windows-31j(≈shift_-jis):ja_-jp
  • Windows-874(≈TIS-620,ISO-8859-11):第
  • 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_z,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_z,tr_tr,uz_uz
  • Windows-1255:何伊
  • Windows-1256:AR_E、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_U ir、PS_A F、UR_P K
  • Windows-1257:等,左,左,左
  • Windows-1258:视频

以及网络上最常见的编码:

  • UTF-8(89.2%)
  • ISO-8859-1(5.0%)
  • Windows-1251(1.6%)
  • shift-jis(0.9%)
  • Windows-1252(0.8%)
  • GB23 12(0.7%)
  • EK-Kr(0.4%)
  • EUC-JP(0.3%)
  • GBK(0.3%)
  • ISO-8859-2(0.2%)
  • Windows-1250(0.2%)
  • ISO-8859-15(0.1%)
  • Windows-1256(0.1%)
  • ISO-8859-9(0.1%)
  • BIG5(0.1%)
  • Windows-1254(0.1%)
  • Windows-874(0.1%)

  • HTML5草案包含语言的默认编码表,反映了被认为是常见的语言。但是,请注意,它应该基于用户区域设置,即浏览器或操作系统的语言,而不是文档的语言,这显然是因为后者通常是未知的,至少在您实际阅读文档之前,基于对编码的一些假设。

    我认为在实践中你可以在一个流行的网络浏览器中复制编码列表。如果它在那里工作得很好,那么它在您的应用程序中可能工作得相当好。浏览器对列表及其顺序做了一些聪明的事情,但实际上,我认为有一个简短的列表就足够了,比如utf-8、utf-16、windows-1252,或者其他一些列表,然后选择获取完整的列表。请注意,尽管utf-16实际上没有被使用,也对网页没有用处,但它在纯文本文件中很常见。很重要的一点是要将编码命名好,最好使用一个通用的英语(或其他语言)名称,加上括号中的IANA"charset"名称,就像浏览器那样。


    我建议使用与浏览器相同的菜单结构。例如,firefox:view->character encoding->more encoding->east asian->chinese/japanese/korean。(好吧,只要你看看就容易了)。以及IE中的View->Encoding->More。

    可能看起来太深和笨重,但它是非常熟悉的。并且不会删除有用的编码(例如,为什么Koi8-R用于俄语?如果我使用的是Windows 1251而不在列表中会发生什么呢?)