ISO 10646

Norma ISO/IEC 10646 opisuje uniwersalny zestaw znaków (UCSUniversal Character Set) służący do opisu znaków (liter, cyfr, symboli, ideogramów itd.) z wielu języków, pism i tradycji na świecie. Zestaw zawiera około 100 000 abstrakcyjnych znaków, z których każdy posiada unikalną nazwę i kod znaku.

Teoretycznie standard pozwala na zapisanie ponad 2 miliardów znaków (w 31 bitach, zobacz UCS-4), jednak w powszechnym użyciu jest jedynie pierwsze 65 536 znaków (UCS-2) ze zbioru Podstawowej Płaszczyzny Wielojęzycznej (BMP - Basic Multilingual Plane).

UCS jest ciągle rozwijany, aktualnie trwają prace nad poprawką numer 3 i 4 do standardu ISO/IEC 10646:2003 Amendment 1 and Amendment 2.[1]

Relacje do Unicode[edytuj | edytuj kod]

W 1991 ISO Working Group podjęło współpracę z Unicode Consortium w celu stworzenia jednego standardu dla zapisu wielojęzykowego tekstu. Unicode 1.1 opublikowany w 1993 roku był już zgodny z normą ISO/IEC 10646-1:1993. Odtąd Unikod stał się oficjalną implementacją ww. normy.[2]

  • ISO/IEC 10646-1:1993 ≈ Unicode 1.1
  • ISO/IEC 10646-1:2000 ≈ Unicode 3.0
  • ISO/IEC 10646-2:2001 ≈ Unicode 3.2
  • ISO/IEC 10646:2003 ≈ Unicode 4.0
  • ISO/IEC 10646:2003 plus Amendment 1 ≈ Unicode 4.1
  • ISO/IEC 10646:2003 plus Amendment 1, Amendment 2, oraz część Amendment 3 ≈ Unicode 5.0

Zobacz §D.1 of The Unicode Standard dla szczegółowych informacji.

Konwersja pomiędzy kodowaniem ISO 10646 a innymi[edytuj | edytuj kod]

Format określony w ISO 10646 jest już używany w technologii XML. W związku z problemami podczas obsługi kodowania ISO-8859-2 sugerowane jest przekodowanie znaków spoza ASCII na odpowiednie leksemy.

Przykładowy plik XML może mieć postać:

 <test opis="Zażółć gęślą jaźń"> 

Po konwersji wygląda tak:

 <test opis="Za&#380;&#243;&#322;&#263; g&#281;&#347;l&#261; ja&#378;&#324;"> 

Do wykonania konwersji może być przydatny program AWK

 {  gsub(/Ą/, "\\&#260;");  gsub(/Ć/, "\\&#262;");  gsub(/Ę/, "\\&#280;");  gsub(/Ł/, "\\&#321;");  gsub(/Ń/, "\\&#323;");  gsub(/Ó/, "\\&#211;");  gsub(/Ś/, "\\&#346;");  gsub(/Ź/, "\\&#377;");  gsub(/Ż/, "\\&#379;");  gsub(/ą/, "\\&#261;");  gsub(/ć/, "\\&#263;");  gsub(/ę/, "\\&#281;");  gsub(/ł/, "\\&#322;");  gsub(/ń/, "\\&#324;");  gsub(/ó/, "\\&#243;");  gsub(/ś/, "\\&#347;");  gsub(/ź/, "\\&#378;");  gsub(/ż/, "\\&#380;");  print  } 

Zobacz też[edytuj | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. WG2 - Projects
  2. FAQ - Unicode and ISO 10646 [online], unicode.org [dostęp 2017-11-23] (ang.).

Linki zewnętrzne[edytuj | edytuj kod]