Successfully reported this slideshow.

More Related Content

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Schei. encoding

  1. 1. Schei� encoding Codierungen und ähnliches
  2. 2. Schei� encoding Codierungen und ähnliches Andreas Heigl @heiglandreas
  3. 3. Historisches Anfänge ASCII ISO Unicode
  4. 4. Anfänge Lochkarten Kein Bedarf für „Schrift“
  5. 5. ASCII American Standard Code for Information Interchange 1963 entstanden 7-Bit Zeichensatz (128 Zeichen)
  6. 6. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 A B C D E F G H I J K L M N O 5 P Q R S T U VWX Y Z 6 7
  7. 7. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z 6 a b c d e f g h i j k l m n o 7 p q r s t u v w x y z
  8. 8. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 0 1 2 3 4 5 6 7 8 9 4 A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z 6 a b c d e f g h i j k l m n o 7 p q r s t u v w x y z
  9. 9. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 ! ” # $ % & ’ ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { | } ~ .
  10. 10. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 ! ” # $ % & ’ ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { | } ~ .
  11. 11. ISO International Standardisation Organisation ASCII-Kompatibel 8-Bit Zeichensatz (256 Zeichen)
  12. 12. -1 Latin-1, Westeuropa -9 Latin-5, Türkisch -2 Latin-2, Mitteleuropa -10 Latin-6, Nordisch -3 Latin-3, Südeuropa -11 Thai -4 Latin-4, Nordeuropa -12 - nicht existent -5 Kyrillisch -13 Latin-7, Baltisch -6 Arabisch -14 Latin-8, Keltisch -7 Griechisch -15 Latin-9, Westeuropäisch -8 Hebräisch -16 Latin-10, Südosteuropäisch
  13. 13. ISO-8859 -1 Latin-1, Westeuropa -9 Latin-5, Türkisch -2 Latin-2, Mitteleuropa -10 Latin-6, Nordisch -3 Latin-3, Südeuropa -11 Thai -4 Latin-4, Nordeuropa -12 - nicht existent -5 Kyrillisch -13 Latin-7, Baltisch -6 Arabisch -14 Latin-8, Keltisch -7 Griechisch -15 Latin-9, Westeuropäisch -8 Hebräisch -16 Latin-10, Südosteuropäisch
  14. 14. ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 ! ” # $ % & ’ ( ) * + , - . / 3 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 4 @ A B C D E F G H I J K L M N O 5 P Q R S T U V W X Y Z [ ] ^ _ 6 ` a b c d e f g h i j k l m n o 7 p q r s t u v w x y z { | } ~ .
  15. 15. ISO-8859-1 0 1 2 3 4 5 6 7 8 9 A B C D E F 8 9 A nbsp ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ shy ® ¯ B ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ C À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï D Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß E à á â ã ä å æ ç è é ê ë ì í î ï F ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ
  16. 16. Andere Codierungen MacRoman WindowsLatin ...
  17. 17. Unicode 1991 (1988) entstanden Multibyte Zeichensatz (z.Zt. 1.114.112 Zeichen) ASCII/ISO-8859-1 Kompatibel Unterschiedliche Codierungen (UTF-8, UTF-16, UTF-32, EBCDIC, .... )
  18. 18. Unicode U+0000 - U+10FFFF U+0000 - U+007F -> ASCII U+0080 - U+00FF -> ISO-8859-1 Verschiedene Codierungen möglich
  19. 19. UTF-32 jedes Zeichen 4 Byte lang Einfach Speicherintensiv
  20. 20. UTF-16 jedes Zeichen 2 Byte lang Einfach Codiert nur die meistgenutzten Zeichen aus Unicode Nur Zeichen von U+0000 bis U+FFFF möglich. Big- oder LittleEndian? MacOS-X, Windows, Java, .Net
  21. 21. UTF-8 jedes Zeichen zwischen 1 und 4 Byte lang Streamsicher, da Start- und Folgezeichen unterschieden werden Alle Unicode-Zeichen codierbar und noch viel mehr (bis zu 2^42 - 4.398.046.511.104) Platzsparend, da oft nur 1 Byte gespeichert werden muss (Lateinische Schriften) Linux, IETF
  22. 22. UTF-8 Startbyte 0xxxxxxx oder 11xxxxxx Folgebyte 10xxxxxx 0xxxxxxx für 1-Byte-Zeichen 1xxxxxxx für Mehr-Byte-Zeichen. Die Anzahl der 1 zeigt die Anzahl der Gesamt-Byte an
  23. 23. UTF-8 00-7F ein Byte langes Zeichen (ASCII) 80-BF 2., 3. oder 4. Byte einer mehrbyte- Sequenz C2-DF Start einer 2 Byte langen Sequenz E0-EF Start einer 3 Byte langen Sequenz F0-F4 Start einer 4 Byte langen Sequenz
  24. 24. UTF-8 UTF-8 Binär Unicode Fehler U+0079 y 0x79 01111001 01111001 0xC3 0xA4 11000011 U+00E4 ä ä 10100100 11100100
  25. 25. Codierung und PHP PHP ist NICHT Unicode-sicher Warum ist das ein Problem?
  26. 26. Warum ist das ein Problem? Kein Problem wenn NUR EINE ISO-8859-Variante zum Einsatz kommt. Internationale Seiten Mehrsprachige Texte (da langt schon ein griechisches Wort ...) Mehrbyte-Zeichen und strlen? Darstellung von einzelnen Zeichen eines MehrByte- Zeichens (z.B. ä statt ä)
  27. 27. Codierung und PHP mb_internal_encoding('UTF-8'); mb_http_input ('UTF-8'); mb_http_output ('UTF-8'); Content-type: text/html; charset=utf-8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> und <form accept- charset = "utf-8"> CREATE DATABASE ... DEFAULT CHARACTER SET utf8 COLLATE utf8 ... ENGINE ... CHARSET=utf8 COLLATE=utf8_unicode_ci SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' default_charset = UTF-8 mb_string Funktionen mb-Reguläre Ausdrücke u-Modifikator für preg-RegEx
  28. 28. mb_string MultiByte-Funktionen Ersetzen „normale“ String-Funktionen Ermöglichen den Umgang mit UTF-8 Überladen von Standard-Funktionen für Mail (1), String (2) und RegEx-Funktionen (4) mittles mbstring.overload = n
  29. 29. iconv Konvertierung aus beliebigem Zeichensatz nach z.B. UTF-8 <?php $sourceEnc = mb_detect_encoding($string); $targetEnc = ‘UTF8//TRANSLIT/ /IGNORE‘; echo iconv($sourceEnc,$targetEnc,$string);
  30. 30. MySQL Server [mysqld] default-collation=utf8_bin Client character-set-server=utf8 collation-server=utf8_bin Verbindung default-character-set=utf8 Datenbank [client] Tabelle default-character-set=utf8
  31. 31. Client MySQL (UTF-8) Ü C3 9C Verbindung (ISO-8859-1) Ãœ C3 9C Server (UTF-8) Ãœ C3 83 C2 9C
  32. 32. Resourcen http://php.net/manual/de/ mbstring.overload.php http://www.ibm.com/developerworks/library/ os-php-unicode/index.html http://unicode.org Google, Bing, Yahoo, .....
  33. 33. Fragen?

Editor's Notes

  • \n
  • \n
  • \n
  • \n
  • ABC hat 26 Zeichen, sollte langen!\n
  • Kleinbuchstaben auch noch\n
  • Zahlen!\n
  • Satzzeichen auch noch?\n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • \n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • Steuerzeichen f&amp;#xFC;r Drucker etc.\n\nSch.... ganz sch&amp;#xF6;n voll.\n\nUnd die Briten nerven weil es zwar ein Dollar-Zeichen, aber kein Pfund zeichen gibt. Und platzist auch nicht mehr.....\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ×