УТФ-8 значи „ Уницоде Трансформатион Формат 8-бит ” и одговара одличном формату кодирања који осигурава да се знакови приказују на одговарајући начин на свим уређајима, без обзира на језик/писмо који се користи. Такође, овај формат је помоћни за веб странице и користи се за складиштење, обраду и пренос текстуалних података на интернету.
Овај водич покрива доле наведене области садржаја:
- Шта је УТФ-8 кодирање?
- Како функционише УТФ-8 кодирање?
- Како се израчунавају вредности кодних поена?
- Како кодирати/декодирати УТФ-8 у ЈаваСцрипт-у?
- Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу метода „енцодеУРИЦомпонент()“ и „децодеУРИЦомпонент()“.
- Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу метода „енцодеУРИ()“ и „децодеУРИ()“.
- Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу регуларних израза.
- Закључак
Шта је УТФ-8 кодирање?
“ УТФ-8 кодирање ” је поступак трансформације низа Уницоде знакова у кодирани низ који се састоји од 8-битних бајтова. Ово кодирање може представљати велики распон знакова у поређењу са другим кодовима знакова.
Како функционише УТФ-8 кодирање?
Док представља знакове у УТФ-8, свака појединачна кодна тачка је представљена једним или више бајтова. Следи преглед тачака кода у АСЦИИ опсегу:
- Један бајт представља кодне тачке у АСЦИИ опсегу (0-127).
- Два бајта представљају кодне тачке у АСЦИИ опсегу (128-2047).
- Три бајта представљају кодне тачке у АСЦИИ опсегу (2048-65535).
- Четири бајта представљају кодне тачке у АСЦИИ опсегу (65536-1114111).
То је такво да први бајт „ УТФ-8 ” секвенца се назива „ водећи бајт ” који даје информације о броју бајтова у низу и вредности кодне тачке карактера.
„Водећи бајт“ за секвенцу од једног, два, три и четири бајта је у опсегу (0-127), (194-233), (224-239) и (240-247), респективно.
Остали бајтови у низу се називају „ траилинг ” бајтова. Сви бајтови за секвенцу од два, три и четири бајта су у опсегу (128-191). То је такво да се вредност кодне тачке карактера може израчунати анализом водећих и завршних бајтова.
Како се израчунавају вредности кодних поена?
Вредности кодних тачака за различите секвенце бајтова се израчунавају на следећи начин:
- Двобајтна секвенца: Кодна тачка је еквивалентна „((лб – 194) * 64) + (тб – 128)“.
- Секвенца од три бајта : Кодна тачка је еквивалентна „((лб – 224) * 4096) + ((тб1 – 128) * 64) + (тб2 – 128)”.
- Четворобајтна секвенца : Кодна тачка је еквивалентна „((лб – 240) * 262144) + ((тб1 – 128) * 4096) + ((тб2 – 128) * 64) + (тб3 – 128)”.
Како кодирати/декодирати УТФ-8 у ЈаваСцрипт-у?
Кодирање и декодирање УТФ-8 у ЈаваСцрипт-у може се извршити путем доле наведених приступа:
- “ енодеУРИЦомпонент() ' и ' децодеУРИЦомпонент() ” Методе.
- “ енцодеУРИ() ' и ' децодеУРИ() ” Методе.
- Регуларни изрази.
Приступ 1: Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу метода „енцодеУРИЦомпонент()“ и „децодеУРИЦомпонент()“
„ енцодеУРИЦомпонент() ” метод кодира УРИ компоненту. Такође, може да кодира специјалне знакове као што су @, &, :, +, $, #, итд. децодеУРИЦомпонент() ” метода, међутим, декодира УРИ компоненту. Ове методе се могу користити за кодирање и декодирање прослеђених вредности у УТФ-8, респективно.
Синтакса (метод „енцодеУРИЦомпонент()“)
енцодеУРИЦомпонент ( Икс )У датој синтакси, „ Икс ” означава УРИ који треба кодирати.
Повратна вредност
Овај метод је преузео кодирани УРИ као стринг.
Синтакса (метод „децодеУРИЦомпонент()”)
децодеУРИЦомпонент ( Икс )Овде, „ Икс ” се односи на УРИ који треба декодирати.
Повратна вредност
Овај метод даје декодирани УРИ.
Пример 1: Кодирање УТФ-8 у ЈаваСцрипт-у
Овај пример кодира прослеђени низ у кодирану УТФ-8 вредност уз помоћ кориснички дефинисане функције:
повратак непобећи ( енцодеУРИЦомпонент ( Икс ) ) ;
}
нека вал = 'овде' ;
конзола. Пријава ( 'Дата вредност ->' + вал ) ;
нека енцодеВал = енцоде_утф8 ( вал ) ;
конзола. Пријава ( 'Кодирана вредност ->' + енцодеВал ) ;
У овим редовима кода извршите доле наведене кораке:
- Прво дефинишите функцију „ енцоде_утф8() ” који кодира прослеђени низ представљен наведеним параметром.
- Ово кодирање се врши помоћу „ енцодеУРИЦомпонент() ” метод у дефиницији функције.
- Белешка: „ унесцапе() ” метод замењује било коју излазну секвенцу са карактером који њоме представља.
- Након тога, иницијализујте вредност коју желите да кодирате и прикажите је.
- Сада позовите дефинисану функцију и проследите дефинисану комбинацију карактера као њене аргументе да бисте ову вредност кодирали у УТФ-8.
Излаз
Овде се може имплицирати да су појединачни знакови представљени и кодирани у УТФ-8 у складу са тим.
Пример 2: Декодирање УТФ-8 у ЈаваСцрипт-у
Доња демонстрација кода декодира прослеђену вредност (у облику знакова) у кодирану УТФ-8 репрезентацију:
повратак децодеУРИЦомпонент ( побећи ( Икс ) ) ;
}
нека вал = 'А А§А¨' ;
конзола. Пријава ( 'Дата вредност ->' + вал ) ;
нека декодира = децоде_утф8 ( вал ) ;
конзола. Пријава ( 'Дешифрована вредност -> ' + декодирати ) ;
У овом блоку кода:
- Слично, дефинишите функцију „ децоде_утф8() ” који декодира прослеђену комбинацију знакова преко „ децодеУРИЦомпонент() ” метод.
- Белешка: „ есцапе() ” метода преузима нови стринг у коме су различити знакови замењени хексадецималним излазним секвенцама.
- Након тога наведите комбинацију знакова за декодирање и приступите дефинисаној функцији да бисте извршили декодирање у УТФ-8 на одговарајући начин.
Излаз
Овде се може имплицирати да је кодирана вредност у претходном примеру декодирана на подразумевану вредност.
Приступ 2: Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу метода „енцодеУРИ()“ и „децодеУРИ()“
„ енцодеУРИ() ” метод кодира УРИ заменом сваке инстанце више знакова са бројем излазних секвенци које представљају УТФ-8 кодирање карактера. У поређењу са „ енцодеУРИЦомпонент() ”, овај посебан метод кодира ограничене знакове.
„ децодеУРИ() ” метода, међутим, декодира УРИ (кодиран). Ове методе се могу применити у комбинацији за кодирање и декодирање комбинације знакова у вредности кодираној УТФ-8.
Синтакса(метод енцодеУРИ())
енцодеУРИ ( Икс )У горњој синтакси, „ Икс ” одговара вредности која се кодира као УРИ.
Повратна вредност
Овај метод преузима кодирану вредност у облику стринга.
Синтакса(децодеУРИ() метода)
децодеУРИ ( Икс )Овде, „ Икс ” представља кодирани УРИ који треба декодирати.
Повратна вредност
Враћа декодирани УРИ као стринг.
Пример 1: Кодирање УТФ-8 у ЈаваСцрипт-у
Ова демонстрација кодира прослеђену комбинацију знакова у кодирану УТФ-8 вредност:
повратак непобећи ( енцодеУРИ ( Икс ) ) ;
}
нека вал = 'овде' ;
конзола. Пријава ( 'Дата вредност ->' + вал ) ;
нека енцодеВал = енцоде_утф8 ( вал ) ;
конзола. Пријава ( 'Кодирана вредност ->' + енцодеВал ) ;
Овде се присетите приступа за дефинисање функције додељене за кодирање. Сада примените метод „енцодеУРИ()“ да представите прослеђену комбинацију знакова као УТФ-8 кодиран стринг. Након тога, исто тако, дефинишите карактере за процену и позовите дефинисану функцију тако што ћете пренети дефинисану вредност као њене аргументе за извршење кодирања.
Излаз
Овде је евидентно да је пренета комбинација знакова успешно кодирана.
Пример 2: Декодирање УТФ-8 у ЈаваСцрипт-у
Демонстрација кода у наставку декодира кодирану УТФ-8 вредност (у претходном примеру):
повратак децодеУРИ ( побећи ( Икс ) ) ;
}
нека вал = 'А А§А¨' ;
конзола. Пријава ( 'Дата вредност ->' + вал ) ;
нека декодира = децоде_утф8 ( вал ) ;
конзола. Пријава ( 'Дешифрована вредност -> ' + декодирати ) ;
Према овом коду, прогласите функцију „ децоде_утф8() ” који садржи наведени параметар који представља комбинацију знакова која се декодира помоћу „ децодеУРИ() ” метод. Сада наведите вредност коју треба декодирати и позовите дефинисану функцију да бисте применили декодирање на „ УТФ-8 ” репрезентација.
Излаз
Овај исход имплицира да је претходно кодирана вредност одређена у складу са тим.
Приступ 3: Кодирање/декодирање УТФ-8 у ЈаваСцрипт-у помоћу регуларних израза
Овај приступ примењује кодирање тако да је вишебајтни уникод стринг кодиран у УТФ-8 више једнобајтних знакова. Слично, декодирање се изводи тако да се кодирани низ декодира назад у вишебајтне Уницоде знакове.
Пример 1: Кодирање УТФ-8 у ЈаваСцрипт-у
Код у наставку кодира вишебајтни уникод низ у УТФ-8 једнобајтне знакове:
ако ( тип вал != 'низ' ) бацити Нова ТипеЕррор ( 'Параметар' вал 'није низ' ) ;
конст стринг_утф8 = вал. заменити (
/[\у0080-\у07фф]/г , // У+0080 - У+07ФФ => 2 бајта 110иииии, 10зззззз
функција ( Икс ) {
био оут = Икс. цхарЦодеАт ( 0 ) ;
повратак Низ . фромЦхарЦоде ( 0кц0 | оут >> 6 , 0к80 | оут & 0к3ф ) ; }
) . заменити (
/[\у0800-\уфффф]/г , // У+0800 - У+ФФФФ => 3 бајта 1110кккк, 10ииииии, 10зззззз
функција ( Икс ) {
био оут = Икс. цхарЦодеАт ( 0 ) ;
повратак Низ . фромЦхарЦоде ( 0ке0 | оут >> 12 , 0к80 | оут >> 6 & 0к3Ф , 0к80 | оут & 0к3ф ) ; }
) ;
конзола. Пријава ( 'Кодирана вредност помоћу регуларног израза -> ' + стринг_утф8 ) ;
}
енцодеУТФ8 ( 'овде' )
У овом исечку кода:
- Дефинишите функцију ' енцодеУТФ8() ” који садржи параметар који представља вредност која се кодира као „ УТФ-8 ”.
- У својој дефиницији, примените проверу на прослеђену вредност која није стринг користећи „ тип ” оператор и вратите наведени прилагођени изузетак преко „ бацити ” кључна реч.
- Након тога, примените „ цхарЦодеАт() ' и ' фромЦхарЦоде() ” за преузимање Уницоде првог знака у низу и трансформисање дате Уницоде вредности у знакове, респективно.
- Коначно, позовите дефинисану функцију преношењем датог низа знакова да бисте ову вредност кодирали као „ УТФ-8 ” репрезентација.
Излаз
Овај излаз означава да је кодирање изведено на одговарајући начин.
Пример 2: Декодирање УТФ-8 у ЈаваСцрипт-у
У овој демонстрацији, низ знакова се декодира у „ УТФ-8 ” представљање:
ако ( тип вал != 'низ' ) бацити Нова ТипеЕррор ( 'Параметар' вал 'није низ' ) ;
конст стр = вал. заменити (
/[\у00е0-\у00еф][\у0080-\у00бф][\у0080-\у00бф]/г ,
функција ( Икс ) {
био оут = ( ( Икс. цхарЦодеАт ( 0 ) & 0к0ф ) << 12 ) | ( ( Икс. цхарЦодеАт ( 1 ) & 0к3ф ) << 6 ) | ( Икс. цхарЦодеАт ( 2 ) & 0к3ф ) ;
повратак Низ . фромЦхарЦоде ( оут ) ; }
) . заменити (
/[\у00ц0-\у00дф][\у0080-\у00бф]/г ,
функција ( Икс ) {
био оут = ( Икс. цхарЦодеАт ( 0 ) & 0к1ф ) < '+стр);
}
децодеУТФ8('А А§А¨')
У овом коду:
- Слично, дефинишите функцију „ децодеУТФ8() ” који има параметар који се односи на прослеђену вредност коју треба декодирати.
- У дефиницији функције проверите стање стринга прослеђене вредности преко „ тип ” оператор.
- Сада примените „ цхарЦодеАт() ” за преузимање Уницоде-а првог, другог и трећег низа знакова, респективно.
- Такође, примените „ Стринг.фромЦхарЦоде() ” за трансформацију Уницоде вредности у знакове.
- Исто тако, поновите ову процедуру поново да бисте преузели Уницоде знакова првог и другог стринга и трансформисали ове Уницоде вредности у знакове.
- На крају, приступите дефинисаној функцији да бисте вратили декодирану вредност УТФ-8.
Излаз
Овде се може проверити да ли је декодирање урађено исправно.
Закључак
Кодирање/декодирање у УТФ-8 представљању се може извршити преко „ енодеУРИЦомпонент()” и ' децодеУРИЦомпонент() методе, „ енцодеУРИ() ' и ' децодеУРИ() ” или коришћењем регуларних израза.