Mga computerProgramming

UTF-8 - character encoding

Unicode ay sumusuporta sa halos lahat ng umiiral na hanay ng character. Ang pinakamahusay na paraan ng encoding Unicode character set ay UTF-8 encoding. Ito ay sumusuporta sa pagiging tugma sa ASCII, paglaban sa pagkabaluktot ng data, ang kahusayan at kadalian ng processing. Ngunit unang bagay muna.

coding anyo

Computers gumana hindi lamang ng mga numero ng abstract mathematical na mga bagay, pati na rin ang mga kumbinasyon ng mga yunit ng imbakan at paghawak ng nakapirming-size data - byte at 32-bit na mga salita. Encoding standard ay dapat tumagal ito sa account kapag pagtukoy kung paano upang ipakita ang bilang ng mga character.

Sa mga computer system, ang mga intedyer naka-imbak sa mga cell memory ng 8 bits (1 byte), 16 o 32 bits. Ang bawat anyo tumutukoy sa isang Unicode encoding, na pagkakasunod-sunod ng mga cell memory ay isang integer naaayon sa isang partikular na simbolo. Sa karaniwang may tatlong iba't ibang mga paraan ng coding mga Unicode na character 8, 16 at 32-bit na mga bloke. Alinsunod dito, ang mga ito ay kilala bilang UTF-8, UTF-16 at UTF-32. Pangalan ng UTF ang ibig sabihin ay Unicode Transformation Format. Ang bawat isa sa tatlong mga paraan ng pag-encode ibig sabihin nito ay katumbas na representasyon Unicode character ay may pakinabang sa iba't-ibang mga application.

Data encryption ay maaaring gamitin upang kumatawan sa lahat ng mga character sa Unicode standard. Sa gayon, ang mga ito ay ganap na tumutugma sa mga solusyon para sa iba't ibang dahilan, ang paggamit ng iba't ibang porma ng coding. Ang bawat coding ay maaaring unambiguously mako-convert sa alinman sa iba pang dalawang nang walang pagkawala ng data.

nenalozheniya prinsipyo

Ang bawat isa sa mga form Unicode encoding binuo sa view ng mga hindi bahagyang overlap. Halimbawa, Windows-932 bumubuo ng character ng isa o dalawang bytes ng code. Ang pagkakasunod-sunod ng haba ay depende sa unang byte, kaya ang mga nangungunang mga halaga byte sa mga serye ng dalawang-byte at solong byte magkahiwa-hiwalay. Gayunman, ang halaga ng isang solong byte at trailing byte sequence ay maaaring nag-tutugma. Ang ibig sabihin nito para sa mga halimbawa na ang character search D (code 44) ay maaaring mahanap ito nagkamaling pumasok sa ikalawang bahagi ng pagkakasunod-sunod ng dalawang-byte character na "D" (code 84 44). Upang malaman kung aling pagkakasunod-sunod ay tama, ang programa ay dapat na kumuha sa account ang mga nakaraang bytes.

Ang sitwasyon ay kumplikado, kung ang nangunguna at sumusunod bytes tugma. Nangangahulugan ito na upang alisin ang labo ay magiging isang reverse lookup bago maabot ang simula ng teksto o ang natatanging code sequence. Ito ay hindi lamang hindi mabisa, ngunit hindi protektado mula sa posibleng mga error, dahil lamang ng isang maling byte sa buong teksto ay naging hindi nababasa.

Format ng conversion Unicode avoids ang problemang ito dahil ang halaga ng mga nangungunang, trailing, at isang solong yunit ng imbakan ay hindi ang parehong impormasyon. Sinisiguro nito na ang lahat ng Unicode para sa paghahanap at paghahambing, hindi pagbibigay ng maling resulta dahil sa ang pagkakatulad ng iba't ibang bahagi ng code na karakter. Ang katotohanan na ang mga paraan ng coding sundin ang mga prinsipyo nenalozheniya, distinguishes ito mula sa iba pang mga East Asian multi-byte encodings.

Ang isa pang aspeto nonintersection Unicode pag-encode ay na ang bawat karakter ay may isang malinaw na tinukoy na hangganan. Ito ang pangangailangan upang i-scan sa isang walang taning bilang ng mga nakaraang mga simbolo. Ang tampok na ito ay minsan ay tinatawag na self-clocking encoding. Distortion ng mga yunit code ay maipakilala ang isang pagkabaluktot ng isang character lamang, at ang mga nakapalibot na mga character ay pa rin buo. Sa 8-bit format ng conversion, kung ang pointer tumuturo sa byte, na nagsisimula sa 10xxxxxx (sa binary code) upang mahanap ang start ng simbolo ay kinakailangan para sa 2:59 reverse transition.

hindi pagbabago

Ganap na sumusuporta sa Unicode Consortium lahat ng 3 mga paraan ng pag-encode. Ito ay mahalaga na hindi sumasalungat sa UTF-8 at Unicode, tulad ng lahat ng mga format ng conversion - pantay wastong paraan ng tunay na diwa ng Unicode character-encoding pamantayan.

Byte-orientation

Upang kumatawan sa UTF-32 character ay kailangan ng isang 32-bit code yunit, kung saan coincides sa Unicode code. UTF-16 - isa hanggang dalawang 16-bit units. Ang isang UTF-8 ay gumagamit ng hanggang 4 bytes.

UTF-8 encoding ay idinisenyo upang maging tugma sa byte-oriented ASCII-based na mga sistema. Karamihan sa mga umiiral na software at pagsasanay ng impormasyon na teknolohiya para sa isang mahabang panahon umasa sa pagsasalarawan ng mga karakter sa isang pagkakasunod-sunod ng mga byte. Maramihang mga protocol ay depende sa katapatan ng ASCII encoding at gumagamit ng alinman avoids ang mga espesyal na control character. Ang isang simpleng paraan upang umangkop sa mga sitwasyon Unicode Maaari, gamit ang 8-bit coding para sa kumakatawan sa mga Unicode na character, ang anumang katumbas ASCII character o isang control character. Sa pagtatapos na ito, at ito ay UTF-8 encoding.

variable na haba

UTF-8 - coding ng variable na haba, na binubuo ng 8-bit mga yunit ng imbakan, ang itaas na bits na nagpapahiwatig na kung saan bahagi ng pagkakasunod-sunod ng bawat indibidwal na byte ay kabilang. Isang hanay ng mga halaga na inilaan sa unang elemento ng pagkakasunod-sunod code, isa pang - para sa susunod. Ito ay nagbibigay disjointness encoding.

ASCII

UTF-8 encoding ay ganap na suportado ASCII code (0x00-0x7F). Nangangahulugan ito na ang mga Unicode na character U + 0000-U + 007F ay na-convert sa solong byte 0x00-0x7F UTF-8 at sa gayon ay maging mahirap makilala mula sa ASCII. Bukod dito, upang maiwasan ang kalabuan, ang halaga ng 0x00-0x7F hindi ginagamit ng anumang higit pa sa isang solong byte representasyon ng Unicode character. Upang i-encode simbolo neideograficheskih maliban sa ASCII, gamit ang isang pagkakasunod-sunod ng dalawang bytes. Simbolo Iba't U + 0800-U + FFFF ay kinakatawan ng tatlong bytes, at mga karagdagang code na may higit sa U + FFFF nangangailangan ng apat na bytes.

sphere ng application

UTF-8 encoding ay karaniwang ay ibinibigay preference sa HTML protocol, at iba pa.

XML ay naging ang unang pamantayan na may ganap na suporta para sa UTF-8 encoding. Pamantayan organisasyon Inirerekumenda rin ito. Suporta problema sa URL address na naiiba mula sa ASCII-character, ay nalutas kapag ang consortium W3C at IETF pangkat ng engineering ay dumating sa isang kasunduan sa coding ng lahat ng mga address URL ng eksklusibo sa UTF-8.

Kaangkupan sa ASCII pinapadali ang paglipat sa bagong software. Sa UTF-8 ay gumagana karamihan sa mga editor ng teksto, kabilang ang jEdit, Emacs, BBEdit, Eclipse, at "Notepad" sa Windows operating system. Walang ibang anyo ng encoding Unicode ay hindi maaaring ipinagmamalaki ng naturang suporta ng tool.

coding bentahe ay na ito ay binubuo ng isang pagkakasunod-sunod ng bytes. Sa UTF-8 string ay madali upang gumana sa C at iba pang mga programming wika. Ito ang tanging paraan ng pag-encode, ang pagkakasunod-sunod ay hindi nangangailangan ng mga label bytes BOM o ang pag-encode deklarasyon sa XML.

self-pag-synchronize

Sa isang kapaligiran na gumagamit ng 8-bit simbolo ng processing kumpara sa iba pang mga hanay ng mga multi-byte character, UTF-8 ay may mga sumusunod na kalamangan:

  • Ang unang byte code sequence ay naglalaman ng impormasyon tungkol sa haba nito. Ito pinatataas ang kahusayan ng direktang paghahanap.
  • Pinapayak paghahanap ng simula ng simbolo bilang ang panimulang byte ay limitado sa isang nakapirming hanay ng mga halaga.
  • Walang halaga intersection byte.

Paghambingin ang mga benepisyo

UTF-8 encoding ay compact. Ngunit kapag ginagamit para sa pag-encode East Asian na mga character (Chinese, Japanese, Korean, Chinese pagsulat gamit palatandaan) na ginagamit 3-byte sequence. Gayundin UTF-8 encoding ay mababa sa iba pang mga paraan ng coding processing bilis. Ang isang binary pagbubukod-bukod ng mga linya gumagawa ng parehong resulta bilang ang binary pagbubukod-bukod ng Unicode.

Ang character encoding pamamaraan

Ang character encoding pamamaraan Binubuo encoding simbolo form at pamamaraan para sa nag-iisang byte yunit lokasyon code. Upang matukoy ang pag-encode scheme Unicode standard nagbibigay ng paggamit ng isang paunang byte sunod mark (BOM, Byte sunod mark).

Kapag ang BOM sa UTF-8 tampok na tag ay limitado lamang sa reference sa ang paggamit ng mga paraan ng coding. Problema sa pagtukoy ng endian UTF-8 ay may, tulad ng kanyang pag-encode unit laki ay isa byte. Gamit ang BOM para sa form na ito ng coding ay hindi kinakailangan o inirerekumenda. BOM ay maaaring mangyari sa teksto upang ma-convert mula sa iba pang codings gamit byte sunod mark o lagda para sa UTF-8 encoding. Ay isang pagkakasunod-sunod ng 3 bytes EF BB 16 16 BF 16.

Paano upang itakda ang UTF-8 encoding

Ang HTML coding UTF-8 ay naka-install na may mga sumusunod na code:

ulo

Meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" ˃

Sa PHP UTF-8 encoding ay naka-set gamit ang header () function na sa simula ng ang file pagkatapos ng pagtatakda ng error output halaga antas:

˂? Php

error_reporting (-1);

header ( "Content-Type: text / html; charset = utf-8 ');

Upang kumonekta sa isang MySQL database UTF-8 encoding ay naka-set:

˂? Php

mysql_set_charset ( 'utf8');

Ang CSS-file encoding ay UTF-8 character ay tinukoy bilang mga sumusunod:

@charset "utf-8";

Kapag nag-save ka ng file ng lahat ng mga uri piliin ang UTF-8 encoding walang BOM, kung hindi man ang site ay hindi gumagana. Upang gawin ito sa DreamWeave kailangan upang piliin ang menu item na "Pagbabago - Page Properties - Pamagat / Pag-encode" upang baguhin ang encoding na UTF-8. Sinundan sa pamamagitan ng pag-reload ang pahina, alisin ang check mark mula sa "Connect Unicode lagda (BOM)» at ilapat ang mga pagbabago. Kung ang anumang teksto sa isang pahina o sa isang database ay ipinakilala isa pang anyo ng coding, ito ay kinakailangan upang muling ipasok o muling i-encode. Kapag nagtatrabaho ka sa mga regular na expression, siguraduhin na gamitin ang modifier u.

Maaari mo ring i-save ang file sa UTF-8 encoding sa "Notepad" ng Windows. Pagkatapos piliin ang menu item na "File - I-save Bilang ..." i-install ng mga kinakailangang anyo ng pag-encode at i-save ang file sa UTF-8.

Sa isang Notepad text editor ++, kung iyong itinakda maliban sa UTF-8, sa pamamagitan ng menu item na "I-convert sa UTF-8 na walang BOM» baguhin ang character at i-save sa UTF-8.

walang alternatibo

Sa konteksto ng globalization, kung saan pampulitika at linguistic hangganan ay mabubura, ang character set na may mga lokal na mga katangian, ay ng maliit na paggamit. Unicode ay isang solong hanay ng character na sumusuporta sa lahat ng localizations. Ang isang UTF-8 - isang halimbawa ng tamang pagpapatupad ng Unicode, na kung saan ay:

  • Ito ay sumusuporta sa isang malawak na hanay ng mga kasangkapan, kabilang ang pagiging tugma sa ASCII encoding;
  • Ito ay lumalaban sa pagbaluktot data;
  • simple at epektibo sa paggamot;
  • ay malayang platform.

Gamit ang pagdating ng UTF-8 debate tungkol sa kung ano anyo ng pag-encode o character set ay mas mahusay, ito ay nagiging walang kabuluhan.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tl.birmiss.com. Theme powered by WordPress.