Какова наиболее распространенная кодировка каждого языка?

Я разрабатываю приложение для чтения в обычном режиме. Иногда приложение не может автоматически определять кодировку файла, поэтому пользователю необходимо выбрать кодировку из списка кодировок. Если этот список содержит все поддерживаемые кодировки, он будет слишком длинным. Я хочу предоставить упрощенный список, содержит только самые распространенные кодировки каждого языка.

Это некоторые отношения, которые я знаю:

  • Традиционный китайский: Big5
  • Упрощенный китайский: GB18030
  • Японский: Shift-JIS, EUC-JP
  • Русский: KOI8-R

Если вы знаете какой-либо другой язык, наиболее распространенный код, пожалуйста, скажите мне.

Ответ 1

FWIW, вот локали Windows XP, сгруппированные по умолчанию:

  • 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

и наиболее распространенные кодировки в целом в Интернете:

  • UTF-8 (89.2%)
  • ISO-8859-1 (5.0%)
  • Windows-1251 (1.6%)
  • Shift JIS (0.9%)
  • Windows-1252 (0.8%)
  • GB2312 (0,7%)
  • EUC-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%)

Ответ 2

В проекте HTML5 содержится таблица кодировок по умолчанию для языков, что отражает то, что считается общим. Однако обратите внимание, что он должен основываться на пользовательской локали, то есть на языке браузера или операционной системы, а не на языке документа - очевидно, потому что последнее обычно неизвестно, по крайней мере, до того, как вы действительно прочитали документ, основанный на некоторых предположениях о кодировании.

Я думаю, вы могли бы на практике скопировать список кодировок в популярный веб-браузер. Если он хорошо работает там, он, вероятно, работает достаточно хорошо в вашем приложении. Браузеры делают некоторые умные вещи со списком и его порядком, но на практике я думаю, что было бы достаточно иметь короткий список, такой как utf-8, utf-16, windows-1252 и, возможно, несколько других, а затем вариант получив полный список. Обратите внимание, что хотя utf-16 практически не используется и бесполезен для веб-страниц, он распространен для обычных текстовых файлов. Очень важно называть кодировки хорошо, желательно с общим английским (или другим языком) именем вместе с именем "charset" IANA в круглых скобках - как и браузеры.

Ответ 3

Я бы рекомендовал структуру меню, подобную той, которая используется браузерами. Например Firefox: View → Кодировка символов → Больше кодирования → Восточноазиатский → Китайский/Японский/Корейский. (хорошо, проще, если вы только посмотрите). И View → Encoding → Больше в IE.

Может показаться слишком глубоким и неуклюжим, но это очень хорошо знакомо. И не оставляет полезных кодировок (почему KOI8-R для русского языка, например? И что произойдет, если я использую Windows 1251 и не входит в список?)