Koks skirtumas tarp UTF-8 ir ISO-8859-1?

Koks skirtumas tarp UTF-8 ir ISO-8859-1 ?

288
13 авг. Jagadeshas nustatytas rugpjūčio 13 d 2011-08-13 08:21 '11 at 8:21 am 2011-08-13 08:21
@ 6 atsakymai

UTF-8 yra daugialypis kodavimas, kuris gali rodyti bet kokį Unicode simbolį. ISO 8859-1 yra vieno baito kodavimas, kuris gali rodyti pirmuosius 256 Unicode simbolius. Abu tokiu būdu koduojami ASCII.

248
13 авг. Atsakymas, kurį pateikė Ignacio Vazquez-Abrams, rugpjūčio 13 d 2011-08-13 08:26 '11 at 8:26 am 2011-08-13 08:26

Vikipedijoje paaiškinama, kaip gerai: UTF-8 vs Latin-1 (ISO-8859-1). Pirmasis yra kintamas ilgio kodavimas, paskutinis vieno baito kodavimas su fiksuotu ilgiu. Latin-1 koduoja tik pirmuosius 256 Unicode simbolių rinkinio simbolius, o UTF-8 gali būti naudojamas koduoti visus kodo taškus. Fizinio kodavimo lygmeniu vienodai koduojami tik kodo taškai 0-127; Kodas taškai 128 - 255 skiriasi, tampa 2 baitų seka su UTF-8, o jie yra vienas baitas su Lotynų-1.

border=0
104
13 авг. atsakymas, kurį pateikė StaxMan 13 rug . 2011-08-13 08:30 „11, 08:30, 2011-08-13 08:30

Utf

UTF yra daugialypės kodavimo schemų, galinčių atstovauti Unicode , šeima, kuri gali būti tipiška iki 2 ^ 31 [maždaug 2 milijardų] simbolių. UTF-8 yra lanksti kodavimo sistema, kuri naudoja nuo 1 iki 4 baitų pirmiesiems 2 ^ 25 [maždaug 32 milijonams] kodo taškų.

Trumpai tariant, bet koks simbolis, turintis kodo numerį / seką, žemiau 127, vadinamasis 7 bitų saugus ASCII, yra pateikiamas ta pačia 1 baitų seka, kaip ir daugelis kitų vieno baito kodų. Bet koks simbolis, turintis kodo tašką virš 127, yra dviejų ar daugiau baitų seka, o konkretus kodavimas čia geriausiai paaiškinamas.

ISO-8859

ISO-8859 yra vienos baitų kodavimo schemų, naudojamų raidėms žymėti, kurios gali būti pateiktos nuo 127 iki 255, šeima. Šios skirtingos abėcėlės yra apibrėžtos kaip „dalys“ ISO-8859-n, iš kurių labiausiai žinomos yra ISO-8859 -1 - „Lotynų-1“. Kaip ir UTF-8, 7 bitų saugus ASCII lieka nepakitęs, nepriklausomai nuo naudojamo kodavimo šeimos.

Šio kodavimo schemos trūkumas yra tai, kad neįmanoma rasti daugiau nei 128 simbolių turinčių kalbų arba vienu metu saugiai rodyti daugiau nei vieną simbolių šeimą. Be to, ISO-8859 koduotės nekontroliuojami su UTF augimu. ISO darbo grupė, atsakinga už jos likvidavimą 2004 m., Paliekant tarnybą savo pirminiam pakomitečiui.

43
23 авг. atsakymą pateikė Sammitch 23 rug . 2016-08-23 22:15 '16 at 10:15 pm 2016-08-23 22:15

ISO-8859-1 yra pasenęs standartas nuo 1980 m. Jame gali būti tik 256 simboliai, todėl ji tinka tik kai kurioms Vakarų pasaulio kalboms. Net ir daugelyje palaikomų kalbų trūksta kai kurių simbolių. Jei šioje koduotėje sukuriate tekstinį failą ir bandote nukopijuoti / įklijuoti kai kuriuos kinų rašmenis, matysite keistus rezultatus. Kitaip tariant, nenaudokite. Unicode perėmė pasaulį, o šiomis dienomis UTF-8 yra standartas, nebent turite tam tikrų pasenusių priežasčių (pvz., HTTP antraštės, kurios turi būti suderinamos su viskuo).

13
03 июня '16 в 22:31 2016-06-03 22:31 atsakymą pateikė ShitalShah birželio 03 d. 16:31 2016-06-03 22:31

Mano priežastis studijuoti šį klausimą buvo dėl jų suderinamumo. „Latin1 charset“ (ISO-8859) yra 100% suderinama saugoti „utf8“ duomenų bazėje. Visi ascii ir išplėstiniai ascii simboliai bus saugomi kaip vieno baito simboliai.

Kitaip tariant, nuo utf8 iki Lotynų1 charset gali veikti arba neveikti. Jei yra 2 baitų simboliai (simboliai už išplėstinio ascii 255), jie nebus saugomi „Latin1“ atmintyje.

3
02 сент. atsakymą pateikė Alan Jurgensen 02 sep . 2016-09-02 17:20 '16 at 17:20 pm 2016-09-02 17:20

Kita vertus, failai, kurie koduoja tiek unicode, tiek ascii koduotes, nes juose yra 0xc0 baitų, atrodo, teisingai skaitomi iso-8859-1. Įspėjimas yra tai, kad faile neturi būti Unicode simbolių.

0
15 апр. atsakymas pateikiamas nikhilvj 15 balandžio. 2018-04-15 08:49 '18, 8:49