{"id":729,"date":"2011-03-09T18:59:25","date_gmt":"2011-03-09T16:59:25","guid":{"rendered":"http:\/\/robert.kolatzek.org\/wblog\/?p=729"},"modified":"2011-03-09T18:59:25","modified_gmt":"2011-03-09T16:59:25","slug":"zeichensatze-der-bibliotheken","status":"publish","type":"post","link":"https:\/\/blog.kolatzek.org\/wblog\/729\/zeichensatze-der-bibliotheken","title":{"rendered":"Zeichens\u00e4tze der Bibliotheken"},"content":{"rendered":"<p>Unter den Zeichens\u00e4tzen, die heutzutage verwendet werden, hat sich vor allem Latin-1 (-2 etc) &#8211; eigentlich ISO-8859-1 &#8211; und das neue Unicode-Untertyp UTF-8 durchgesetzt. Dennoch existieren viele exotische Zeichens\u00e4tze, die entweder nur einige Sprachen abdecken (wie KOI8-U f\u00fcr Ukrainsch) oder nur an bestimmten &#8222;Orten&#8220; zum Einsatz kommen. Dazu geh\u00f6ren auch die Zeichens\u00e4tze in den Bibliotheken.<!--more-->Die bekanntesten Vertreter in der MARC- (also der nicht-deutschsprachigen) Welt sind MARC-8 und ANSEL (American National Standard for Extended Latin) sowie das DIN ISO 5426 in MAB2-Daten.<\/p>\n<p>Die Idee dahinter war, den ASCII-Zeichensatz so zu erweitern, dass man auch nichtlateinische (oder ver\u00e4nderte lateinische) Zeichen abbilden kann. Die Grundlage f\u00fcr <a title=\"ANSEL-Definition in englischsprachiger Wikipedia\" href=\"https:\/\/secure.wikimedia.org\/wikipedia\/en\/wiki\/ANSEL\" target=\"_blank\">ANSEL <\/a>stellte die Norm <a title=\"ISO\/IEC 6937 in englischer Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/ISO\/IEC_6937\" target=\"_blank\">ISO\/IEC 6937<\/a> dar, die die Zeichen 0x00 bis 0x7f als normale Buchstaben, Zahlen oder Zeichen nutzte, die\u00a0 Zeichen im Bereich von 0x80 bis 0xff von der &#8222;normalen&#8220; Nutzung ausgenommen hat. Alle Zeichen, die nicht ins erste Bereich hineinpassen, werden (ein wenig \u00e4hnlich wie in Unicode) aus zwei Bytes zusammengesetzt: Ein nicht-trennender diakritischer Byte (aus zweitem Bereich) begleitet vom Zeichen aus dem Ersten Bereich. 0xCE+0x65 (polnisches &#8218;ogonek&#8216;-Zeichen + kleines &#8222;e&#8220;) ergeben zusammen &#8222;\u0119&#8220;.<\/p>\n<p>Die \u00c4hnlichkeit mit UTF-8 ist, dass man bestimmte Bereiche von der Nutzung ausnimmt, um sie als einleitende Sequenz f\u00fcr Sonderzeichen einzusetzen. In L\u00e4ndern wie USA kommt es sehr gut an, da die meisten Buchstaben mit einem Byte (aus dem frei verwendbaren Bereich) abgedeckt werden kann. Die Sonderzeichen brauchen zwar 2 Bytes, doch dies komm nur selten vor. Der Unterschied zu UTF-8 ist, dass es keine Zeichen gibt, die mehr als 2 Byte ben\u00f6tigen.<\/p>\n<p>Der <a title=\"ISO 646 mit ISO 5426\" href=\"ftp:\/\/ftp.d-nb.de\/pub\/ddc\/mab-zeichensatz.rtf\" target=\"_blank\">MAB2-Zeichensatz ISO 646 (IRV) zusammen mit ISO 5426 von 1983<\/a> benutzen dieselbe Methode. Sie Definieren bestimmte Zeichen als Sequenz-Zeichen wie<\/p>\n<ul>\n<li>Sepatatoren: 0x1D = Satzende, 0x1E = Feldende, 0x1f = Unterfeld<\/li>\n<li>Nicht-sortier-Zeichen: 0x88 = Anfang, 0x89 = ende<\/li>\n<li>Diakritische-Zeichen: 0xC0 bis 0xCF, 0xD0 bis 0xDF (ohne 0xDC)<\/li>\n<\/ul>\n<p>Andere Zeichen wie 0x20 bis 0x7E sowie 0xA1 bis 0xBF werden wie \u00fcblich verwendet: als Buchstaben, Zahlen und Interpunktionszeichen. Einige typographische Besonderheiten wie Ligaturen oder &#8222;\u00df&#8220; und &#8222;\u0141&#8220; werden in 0xE1, 0xE2, 0xE6, 0xE8, 0xE9, 0xEA, 0xEC, 0xF1, 0xF2, 0xF3, 0xF5, 0xF6, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC (ein Byte) abgebildet.<\/p>\n<p>Kombiniert man 0xC9 mit 0x6f (xc9x6f oder xc96f) bekommt man im MAB2-Zeichensatz das &#8218;\u00f6&#8216;.<\/p>\n<p>MARC-8 verf\u00e4hrt sehr \u00e4hnlich, kennt aber echte Multibyte-Zeichen (f\u00fcr CJK &#8211; japanisch). Die folgenden Sequenzzeichen kennt MARC-8:<\/p>\n<ul>\n<li>Escape-Zeichen 0x1B in MARC-8 (und in Unicode)<\/li>\n<li>Teilfeld-Trenner 0x1F in MARC-8 (und in Unicode)<\/li>\n<li>Feld-Ende 0x1E in MARC-8 (und in Unicode)<\/li>\n<li>Datensatzende 0x1D in MARC-8 (und in Unicode)<\/li>\n<li>Nicht-Sortier-Anfang 0x88 in MARC-8 aber 0x98 in Unicode<\/li>\n<li>Nicht-Sortier-Ende, 0x89 in MARC-8 aber 0x9C in Unicode<\/li>\n<li>Verbinder 0x8D in MARC-8 aber 0x200D\u00a0 in Unicode<\/li>\n<li>Nicht-Verbinder 0x8E in MARC-8 aber 0x200C\u00a0 in Unicode<\/li>\n<li>Diakritische Sequenzen werden in MARC-8 mit 0xE0 bis 0xEF eingeleitet<\/li>\n<li>Die Umschaltung zwischen Zeichens\u00e4tzen geschieht anhand von Sequenzen, die mit 0x1B beginnen. Darauf folgen 0x67 f\u00fcr griechische Symbole, 0x62 f\u00fcr tiefgestellte, 0x70 f\u00fcr hochgestellte Zeichen&#8230; 0x73 f\u00fcr das Ende des besonderen Zeichensatzes.<\/li>\n<li>Je nachdem, ob man ISO 2022 -G0 (0x21 bis 0x7E) oder G1 (0xA1 bis 0xFE) verwenden wird, ein oder Mehrbyte Zeichensatz gibt man hinter ESC (0x1B) ein einleitendes Zeichen ein. Ein solches ist f\u00fcr G0 ein\u00a0 &#8222;(&#8220; alternativ &#8222;,&#8220; f\u00fcr ein-Byte-, &#8222;$&#8220; bzw. &#8222;$,&#8220; f\u00fcr Mehrbyte-Zeichen. Bei G1 sind es &#8222;)&#8220; alternativ &#8222;-&#8220; f\u00fcr ein-Byte-, &#8222;$)&#8220; und &#8222;$-&#8220; f\u00fcr Mehrbyte-Satz. Erst jetzt wird der Zeichenvorrat angegeben: 1 f\u00fcr den einzigen\u00a0 mehrbyte-EACC-Zeichensatz f\u00fcr Chinesisch, Japanisch und Koreanisch, 3 f\u00fcr Arabisch, 4 f\u00fcr erweitertes Arabisch, 2 f\u00fcr Hebr\u00e4isch, S f\u00fcr Griechisch, N f\u00fcr Kyrillisch, Q f\u00fcr erweitertes Kyrillisch, B f\u00fcr ASCII-Lateinische-Zeichen und schlussendlich &#8222;!E&#8220; (0x21 0x45) f\u00fcr die Erweiterung des Lateinischen um deutsche, polnische, tschechische und \u00e4hnliche Zeichen.<\/li>\n<\/ul>\n<p>Ansonsten gelten die ersten 7 Bit der ASCII-Tabelle. Einen in MARC-8 kodierten Datensatz erkennt man an einem Leerzeichen an der 9. Stelle des Datensatzkopfes (en. &#8222;Leader&#8220;). Steht dort ein &#8222;a&#8220;, wird hingegen Unicode verwendet.<\/p>\n<p>Vor allem die Escape-Sequenzen haben es in sich. Sie erlauben zwar das schnelle Umschalten zwischen Zeichens\u00e4tzen, sind aber recht kompliziert. <a title=\"Beispiele f\u00fcr die Nutzung unterschiedlicher Zeichens\u00e4tze in MARC-8\" href=\"http:\/\/www.loc.gov\/marc\/specifications\/speccharmarc8.html#escape\" target=\"_blank\">Beispiele findet man hier<\/a>. Die <a title=\"Zeichensatztabellen des MARC-8\" href=\"http:\/\/www.loc.gov\/marc\/specifications\/specchartables.html\" target=\"_blank\">Tabellen mit Sonder- und diakritischen Zeichen einzelner Zeichens\u00e4tze findet man hier<\/a>.<\/p>\n<p>Auch wenn UTF-8 mit seinen zwei- und mehrbyte-Sequenzen nicht allzu einfach zu verstehen ist, hat es gegen\u00fcber den beiden \u00e4lteren Vorg\u00e4ngern einen gro\u00dfen Vorteil: Auf eine raffinierte Art und Weise deckt es mit wenig Bits sehr viele Zeichens\u00e4tze ab. UTF-16 kann zwar noch mehr, doch die Datenmenge verdoppelt sich, wenn man nur Englisch oder Latein verwendet. Die bibliographischen L\u00f6sungen sind hingegen recht komplex und zugleich sehr begrenzt, weshalb eine Abl\u00f6sung (auch der bibliographischen Formate) in der n\u00e4chsten Zukunft eingeleitet werden sollte.<\/p>\n<p>&nbsp;<\/p>\n<p>Ps. Hexadezimale (hex) Zeichen schreibe ich wie in PHP gewohnt 0xFF, was xFF in anderen Programmiersprachen oder &#xFF; im HTML entspricht.<\/p>\n<p>Pss. <a title=\"MARC-8 zu Latin-1\" href=\"http:\/\/rocky.uta.edu\/doran\/charset\/source.html\">Ein guter Konverter f\u00fcr MARC-8 wurde in Perl geschrieben<\/a>. F\u00fcr MAB2-Zeichensatz existiert ebenfalls einer in Perl aber in 2 Versionen (beide vom <a title=\"Koha Projekt (OpenSource Bibliotheksverwaltung geschrieben in PERL)\" href=\"http:\/\/www.koha.org\/\">Koha-Projekt<\/a>) <a title=\"MAB2 zu Latin1\" href=\"http:\/\/www.rice.edu\/perl4lib\/archives\/2003-05\/msg00070.html\">alt<\/a> und neu (in den Quellen unter C4\/Charset.pm ab Zeile ca. 900). Eine <a title=\"Tabelle der MAB2-zeichen\" href=\"http:\/\/www.gymel.com\/charsets\/MAB2.html\">MAB2-Tabelle<\/a> gibt es auch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unter den Zeichens\u00e4tzen, die heutzutage verwendet werden, hat sich vor allem Latin-1 (-2 etc) &#8211; eigentlich ISO-8859-1 &#8211; und das neue Unicode-Untertyp UTF-8 durchgesetzt. Dennoch existieren viele exotische Zeichens\u00e4tze, die entweder nur einige Sprachen abdecken (wie KOI8-U f\u00fcr Ukrainsch) oder nur an bestimmten &#8222;Orten&#8220; zum Einsatz kommen. Dazu geh\u00f6ren auch die Zeichens\u00e4tze in den Bibliotheken.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[3,8],"tags":[16,120,132],"class_list":["post-729","post","type-post","status-publish","format-standard","hentry","category-informationswissenschaft","category-software","tag-bibliothek","tag-utf-8","tag-zeichensatz","entry"],"_links":{"self":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":0,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/posts\/729\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/media?parent=729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/categories?post=729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kolatzek.org\/wblog\/wp-json\/wp\/v2\/tags?post=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}