{"id":1609,"date":"2012-12-02T07:42:35","date_gmt":"2012-12-02T05:42:35","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=1609"},"modified":"2012-12-02T07:42:35","modified_gmt":"2012-12-02T05:42:35","slug":"java-versionen-gehen-mit-unicode-standard-hand-in-hand","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2012\/12\/java-versionen-gehen-mit-unicode-standard-hand-in-hand\/","title":{"rendered":"Java-Versionen gehen mit Unicode-Standard Hand in Hand"},"content":{"rendered":"<p>In den letzten Jahren hat sich der Unicode-Standard erweitert, und Java ist den Erweiterungen gefolgt.   <\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p><strong>Java-Version<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p><strong>Unicode-Version<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>1.0<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>1.1.5<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>1.1<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>2.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>1.1.7<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>2.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>1.2, 1.3<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>2.1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>1.4<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>3.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>5<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>4.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>6<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>4.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>7<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>6.0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"279\">\n<p>8<\/p>\n<\/td>\n<td valign=\"top\" width=\"279\">\n<p>6.2<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Java-Versionen und ihr unterst\u00fctzter Unicode-Standard<\/p>\n<p>Die Java-Versionen von 1.0 bis 1.4 nutzen einen Unicode-Standard, der f\u00fcr jedes Zeichen 16 Bit reserviert. So legt Java jedes Zeichen in 2 Byte ab und erm\u00f6glicht die Kodierung von mehr als 65.000 Zeichen aus dem Bereich U+0000 bis U+FFFF. Der Bereich hei\u00dft auch BMP (Basic Multilingual Plane). Java 5 unterst\u00fctzt erstmalig den Unicode 4.0-Standard, der 32 Bit (also 4 Byte) f\u00fcr die Abbildung eines Zeichens n\u00f6tig macht. Doch mit dem Wechsel auf Unicode 4 wurde nicht die interne L\u00e4nge f\u00fcr ein Java-Zeichen angehoben, sondern es bleibt dabei, dass ein char 2 Byte gro\u00df ist. Das hei\u00dft aber auch, dass Zeichen, die gr\u00f6\u00dfer als 65.536 sind, irgendwie anders kodiert werden m\u00fcssen. Der Trick ist, ein ein \u00bbgro\u00dfes\u00ab Unicode-Zeichen aus zwei chars zusammenzusetzen. Dieses P\u00e4rchen aus zwei 16-Bit-Zeichen hei\u00dft Surrogate-Paar. Sie bilden in der UTF-16-Kodierung ein Unicode 4.0-Zeichen. Diese Surrogate vergr\u00f6\u00dfern den Bereich der Basic Multilingual Plane.<\/p>\n<p>Mit der Einf\u00fchrung von Unicode 4 unter Java 5 gab es an den Klassen f\u00fcr Zeichen- und Zeichenkettenverarbeitung einige \u00c4nderungen, sodass etwa eine Methode, die nach einem Zeichen sucht, nun nicht nur mit einem char parametrisiert ist, sondern auch mit int, und der Methode damit auch ein Surrogate-Paar \u00fcbergeben werden kann. In diesem Buch spielt das aber keine Rolle, da Unicode-Zeichen aus dem h\u00f6heren Bereichen, etwa f\u00fcr die ph\u00f6nizische Schrift, die im Unicode-Block U+10900 bis U+1091F liegt \u2013 also kurz hinter 65536, was durch 2 Byte abbildbar ist \u2013, nur f\u00fcr eine ganz kleine Gruppe von Interessenten wichtig sind.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den letzten Jahren hat sich der Unicode-Standard erweitert, und Java ist den Erweiterungen gefolgt. Java-Version Unicode-Version 1.0 1.1.5 1.1 2.0 1.1.7 2.1 1.2, 1.3 2.1 1.4 3.0 5 4.0 6 4.0 7 6.0 8 6.2 Java-Versionen und ihr unterst\u00fctzter Unicode-Standard Die Java-Versionen von 1.0 bis 1.4 nutzen einen Unicode-Standard, der f\u00fcr jedes Zeichen 16 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-1609","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=1609"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1609\/revisions"}],"predecessor-version":[{"id":1610,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/1609\/revisions\/1610"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=1609"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=1609"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=1609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}