0
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es
     ...
Apˆndice
  e



Python




           Suporta Unicode ”out of the box”
           Tipos distintos para strings unicode e a...
Apˆndice
  e



Perl




           Suporta Unicode ”out of the box”(Encode, perluni)
           Utiliza o mesmo tipo para...
Apˆndice
  e



JAVA e C#




           Suporta Unicode ”out of the box”
           Tipos distintos para strings unicode ...
Apˆndice
  e



PHP5




           N˜o suporta unicode de forma integrada
            a
           N˜o existem strings un...
Apˆndice
  e



PHP6



      Promete:
           Integrar Unicode
           Tipos distintos para strings unicode e array...
Upcoming SlideShare
Loading in...5
×

Unicode poetry

1,809

Published on

Os bits e os bytes da problemática do character encoding e da normalização de conteúdos na Web.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,809
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Unicode poetry"

  1. 1. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Unicode no mundo real Normaliza¸˜o do conte´do na WEB ca u Cl´udio Valente a SAPO 13 de Novembro de 2007
  2. 2. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Conte´dos u Introdu¸˜o ca 1 Encodings mais comuns 2 Rela¸˜es co Unicode 3 Exemplos de codifica¸˜es co 4 Utiliza¸˜o pr´tica ca a 5 Problemas C´digo exemplificativo o 6 Conven¸˜es co Encoding amb´ ıguo em pedidos V´rios encodings no mesmo documento a Conclus˜es o 7 Objec¸˜es ao Unicode co Resumo
  3. 3. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Conceitos Fundamentais Humanos comunicam com s´ ımbolos (letras e ideogr´ficos) a Computadores n˜o tˆm a no¸˜o de s´ ae ca ımbolo, apenas n´meros u Para processar texto num computador ´ necess´rio e a transformar caracteres em n´meros u Um encoding consiste na atribui¸˜o de um n´mero a cada ca u caracter pertencente a um conjunto
  4. 4. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Conceitos Fundamentais Humanos comunicam com s´ ımbolos (letras e ideogr´ficos) a Computadores n˜o tˆm a no¸˜o de s´ ae ca ımbolo, apenas n´meros u Para processar texto num computador ´ necess´rio e a transformar caracteres em n´meros u Um encoding consiste na atribui¸˜o de um n´mero a cada ca u caracter pertencente a um conjunto
  5. 5. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o ASCII O encoding mais conhecido e usado na pr´tica ´ o ASCII a e (American Standard Code for Information Interchange) Caracteres n˜o acentuados da Europa Ocidental e do Norte a Associa a cada caracter um n´mero entre 0 e 127 u Cada caracter ASCII pode ser representado por um byte Na realidade apenas s˜o necess´rios 7 bits a a Exemplo, o caracter A ´ representado pelo n´mero e u 4116 = 6510 = 010000012
  6. 6. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o ASCII O encoding mais conhecido e usado na pr´tica ´ o ASCII a e (American Standard Code for Information Interchange) Caracteres n˜o acentuados da Europa Ocidental e do Norte a Associa a cada caracter um n´mero entre 0 e 127 u Cada caracter ASCII pode ser representado por um byte Na realidade apenas s˜o necess´rios 7 bits a a Exemplo, o caracter A ´ representado pelo n´mero e u 4116 = 6510 = 010000012
  7. 7. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Encodings utilizados em Portuguˆs e L´ ıngua Portuguesa utiliza caracteres acentuados ASCII ´ insuficiente e Os encodings mais utilizados em Portuguˆs s˜o: ea ISO-8859-1 (latin-1) ISO-8859-15 Windows-1252 UTF-8 UTF-16
  8. 8. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Encodings utilizados em Portuguˆs e L´ ıngua Portuguesa utiliza caracteres acentuados ASCII ´ insuficiente e Os encodings mais utilizados em Portuguˆs s˜o: ea ISO-8859-1 (latin-1) ISO-8859-15 Windows-1252 UTF-8 UTF-16
  9. 9. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Rela¸˜es entre Encodings co ASCII
  10. 10. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Rela¸˜es entre Encodings co `´˜¸ aaac ASCII ISO-8859-1 Extens˜o m´ a ınima com caracteres acentuados das l´ ınguas latinas
  11. 11. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Rela¸˜es entre Encodings co ISO-8859-15 e `´˜¸ aaac ASCII ISO-8859-1 e Windows-1252 ımbolo e n˜o faz parte do latin-1 e para o incluir foram O s´ a criadas v´rias extens˜es incompat´ a o ıveis
  12. 12. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Rela¸˜es entre Encodings co ISO-8859-15 e tudo(?) `´˜¸ aaac ASCII ISO-8859-1 Unicode UTF-(8-16-32) e Windows-1252 O Unicode ´ suposto conter todos os caracteres considerados e em l´ ınguas usadas actualmente bem como muitas j´ mortas. a
  13. 13. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o O que ´ o Unicode e Representa conte´do escrito em (quase) qualquer sistema u humano que exista A cada caracter (grifo) associa um valor num´rico e Define formas de processar dados tais como: Classes de caracteres (alfa-num´ricos, pontua¸˜o, s´ e ca ımbolos) Compara¸˜es entre caracteres (ordena¸˜o alfab´tica) co ca e Direccionalidade do texto
  14. 14. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o O que ´ o Unicode e Representa conte´do escrito em (quase) qualquer sistema u humano que exista A cada caracter (grifo) associa um valor num´rico e Define formas de processar dados tais como: Classes de caracteres (alfa-num´ricos, pontua¸˜o, s´ e ca ımbolos) Compara¸˜es entre caracteres (ordena¸˜o alfab´tica) co ca e Direccionalidade do texto
  15. 15. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Caracter´ ısticas t´cnicas do Unicode e Define aproximadamente 100 000 caracteres ´ E uma extens˜o do latin-1. a Todos os caracteres portugueses tˆm a mesma representa¸˜o e ca em unicode N˜o ´ poss´ continuar a representar cada caracter por um ae ıvel byte ´ E necess´rio fazer corresponder caracteres unicode a uma a sequˆncia de bytes e UTF-32 UTF-16 UTF-8 UTF-7
  16. 16. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Caracter´ ısticas t´cnicas do Unicode e Define aproximadamente 100 000 caracteres ´ E uma extens˜o do latin-1. a Todos os caracteres portugueses tˆm a mesma representa¸˜o e ca em unicode N˜o ´ poss´ continuar a representar cada caracter por um ae ıvel byte ´ E necess´rio fazer corresponder caracteres unicode a uma a sequˆncia de bytes e UTF-32 UTF-16 UTF-8 UTF-7
  17. 17. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Caracter´ ısticas t´cnicas do Unicode e Define aproximadamente 100 000 caracteres ´ E uma extens˜o do latin-1. a Todos os caracteres portugueses tˆm a mesma representa¸˜o e ca em unicode N˜o ´ poss´ continuar a representar cada caracter por um ae ıvel byte ´ E necess´rio fazer corresponder caracteres unicode a uma a sequˆncia de bytes e UTF-32 UTF-16 UTF-8 UTF-7
  18. 18. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequˆncia de caracteres unicode uma e sequˆncia de bytes e Vantagens Conte´do ASCII fica inalterado u Independente de ordena¸˜o de bytes (little-endian vs ca big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necess´rios v´rios bytes por caracter a a N˜o ´ 7bit safe ae O acesso aleat´rio a um caracter n˜o ´ poss´ o ae ıvel
  19. 19. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequˆncia de caracteres unicode uma e sequˆncia de bytes e Vantagens Conte´do ASCII fica inalterado u Independente de ordena¸˜o de bytes (little-endian vs ca big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necess´rios v´rios bytes por caracter a a N˜o ´ 7bit safe ae O acesso aleat´rio a um caracter n˜o ´ poss´ o ae ıvel
  20. 20. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequˆncia de caracteres unicode uma e sequˆncia de bytes e Vantagens Conte´do ASCII fica inalterado u Independente de ordena¸˜o de bytes (little-endian vs ca big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necess´rios v´rios bytes por caracter a a N˜o ´ 7bit safe ae O acesso aleat´rio a um caracter n˜o ´ poss´ o ae ıvel
  21. 21. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ASCII n˜o suporta acentos nem e a
  22. 22. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO-8859-1 suporta acentos, mas n˜o o e a
  23. 23. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO-8859-1 suporta acentos, mas n˜o o e a
  24. 24. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO-8859-15 e Windows-1252 suportam e de forma incompat´ ıvel
  25. 25. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC O Unicode ´ extens˜o do ISO-8859-1 e a
  26. 26. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC UTF-8 necessita de um n´mero vari´vel de bytes u a
  27. 27. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co ıticos e e alfabeto latino com diacr´ e ˜ A A C ¸ ASCII A N.D. N.D. N.D. ISO-8859-1 A [C3] [C7] N.D. ISO-8859-15 A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC UTF-16 e UTF-32 podem ser Little Endian ou Big Endian
  28. 28. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co s´ ımbolos comuns 1 œ “ ... 2 ASCII N.D. N.D. N.D. N.D. ISO-8859-1 [BD] N.D. N.D. N.D. ISO-8859-15 N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 ISO-8859-15 n˜o ´ estritamente uma extens˜o de ISO-8859-1 ae a
  29. 29. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co s´ ımbolos comuns 1 œ “ ... 2 ASCII N.D. N.D. N.D. N.D. ISO-8859-1 [BD] N.D. N.D. N.D. ISO-8859-15 N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 ”smart quotes”e reticˆncias definidas no Windows-1252 mas e n˜o no ISO-8859-1(5) a
  30. 30. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Exemplos de codifica¸˜es co s´ ımbolos comuns 1 œ “ ... 2 ASCII N.D. N.D. N.D. N.D. ISO-8859-1 [BD] N.D. N.D. N.D. ISO-8859-15 N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 Unicode codifica todos os caracteres (para efeitos pr´ticos) a
  31. 31. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o HTML Identificar o conte´do da p´gina como estando codificado em u a UTF-8 nos cabe¸alhos de HTTP. c Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv=quot;content-typequot; content=quot;text/html; charset=utf-8quot; /> </head> Forms. O encoding deve ser especificado sendo o da p´gina por a omiss˜o a <form accept-charset=quot;UTF-8quot;> ... </form>
  32. 32. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o HTML Identificar o conte´do da p´gina como estando codificado em u a UTF-8 nos cabe¸alhos de HTTP. c Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv=quot;content-typequot; content=quot;text/html; charset=utf-8quot; /> </head> Forms. O encoding deve ser especificado sendo o da p´gina por a omiss˜o a <form accept-charset=quot;UTF-8quot;> ... </form>
  33. 33. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o HTML Identificar o conte´do da p´gina como estando codificado em u a UTF-8 nos cabe¸alhos de HTTP. c Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv=quot;content-typequot; content=quot;text/html; charset=utf-8quot; /> </head> Forms. O encoding deve ser especificado sendo o da p´gina por a omiss˜o a <form accept-charset=quot;UTF-8quot;> ... </form>
  34. 34. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Parˆmetros em Unicode a Quando um pedido GET ou POST ´ efectuado, os parˆmetros e a devem ser transformados (uri escape). Infelizmente o conte´do u associado aos bytes n˜o ´ transmitido no pedido obrigando a: ae For¸ar um determinado encoding (parˆmetro accept-charset c a no form) Utilizar argumentos heur´ ısticos Assumir que est´ em UTF-8 a Caso n˜o seja um conjunto de caracteres v´lido assumir latin-1 a a ou melhor Windows-1252 Come¸a a ser comum enviar caracteres fora do ASCII como c %uXXXX onde os quatro X representam o c´digo unicode em o hexadecimal
  35. 35. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Parˆmetros em Unicode a Quando um pedido GET ou POST ´ efectuado, os parˆmetros e a devem ser transformados (uri escape). Infelizmente o conte´do u associado aos bytes n˜o ´ transmitido no pedido obrigando a: ae For¸ar um determinado encoding (parˆmetro accept-charset c a no form) Utilizar argumentos heur´ ısticos Assumir que est´ em UTF-8 a Caso n˜o seja um conjunto de caracteres v´lido assumir latin-1 a a ou melhor Windows-1252 Come¸a a ser comum enviar caracteres fora do ASCII como c %uXXXX onde os quatro X representam o c´digo unicode em o hexadecimal
  36. 36. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Parˆmetros em Unicode a Quando um pedido GET ou POST ´ efectuado, os parˆmetros e a devem ser transformados (uri escape). Infelizmente o conte´do u associado aos bytes n˜o ´ transmitido no pedido obrigando a: ae For¸ar um determinado encoding (parˆmetro accept-charset c a no form) Utilizar argumentos heur´ ısticos Assumir que est´ em UTF-8 a Caso n˜o seja um conjunto de caracteres v´lido assumir latin-1 a a ou melhor Windows-1252 Come¸a a ser comum enviar caracteres fora do ASCII como c %uXXXX onde os quatro X representam o c´digo unicode em o hexadecimal
  37. 37. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Erros comuns P´ginas sem qualquer informa¸˜o de encoding a ca Conte´do latin-1 misturado com UTF-8 u GET ’http://some.domain.pt/’| iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position 48123 Conte´do UTF-8 em p´ginas latin-1. P´gina que se identifica u a a como estando em latin-1 mas que cont´m por exemplo e ˜ ClA¡udio (deveria ser Cl´udio). a
  38. 38. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Erros comuns P´ginas sem qualquer informa¸˜o de encoding a ca Conte´do latin-1 misturado com UTF-8 u GET ’http://some.domain.pt/’| iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position 48123 Conte´do UTF-8 em p´ginas latin-1. P´gina que se identifica u a a como estando em latin-1 mas que cont´m por exemplo e ˜ ClA¡udio (deveria ser Cl´udio). a
  39. 39. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Erros comuns P´ginas sem qualquer informa¸˜o de encoding a ca Conte´do latin-1 misturado com UTF-8 u GET ’http://some.domain.pt/’| iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position 48123 Conte´do UTF-8 em p´ginas latin-1. P´gina que se identifica u a a como estando em latin-1 mas que cont´m por exemplo e ˜ ClA¡udio (deveria ser Cl´udio). a
  40. 40. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o C´digo m´ o ınimo Uma string usual ´ apenas um conjunto de bytes e > s= ’ C l x e 1 u d i o ’ Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( ’ C l x e 1 u d i o ’ , ’ l a t i n −1 ’ ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( ’ C l xc3 x a 1 u d i o ’ , ’ u t f −8 ’ ) Ou dizer logo que se trata duma string unicode > u3 = u ’ C l u 0 0 e 1 u d i o ’ u1, u2 e u3 representam a mesma sequˆncia de grifos. e > p r i n t u1==u2 and u2==u3 True
  41. 41. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o C´digo m´ o ınimo Uma string usual ´ apenas um conjunto de bytes e > s= ’ C l x e 1 u d i o ’ Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( ’ C l x e 1 u d i o ’ , ’ l a t i n −1 ’ ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( ’ C l xc3 x a 1 u d i o ’ , ’ u t f −8 ’ ) Ou dizer logo que se trata duma string unicode > u3 = u ’ C l u 0 0 e 1 u d i o ’ u1, u2 e u3 representam a mesma sequˆncia de grifos. e > p r i n t u1==u2 and u2==u3 True
  42. 42. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o C´digo m´ o ınimo Uma string usual ´ apenas um conjunto de bytes e > s= ’ C l x e 1 u d i o ’ Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( ’ C l x e 1 u d i o ’ , ’ l a t i n −1 ’ ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( ’ C l xc3 x a 1 u d i o ’ , ’ u t f −8 ’ ) Ou dizer logo que se trata duma string unicode > u3 = u ’ C l u 0 0 e 1 u d i o ’ u1, u2 e u3 representam a mesma sequˆncia de grifos. e > p r i n t u1==u2 and u2==u3 True
  43. 43. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o C´digo m´ o ınimo Uma string usual ´ apenas um conjunto de bytes e > s= ’ C l x e 1 u d i o ’ Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( ’ C l x e 1 u d i o ’ , ’ l a t i n −1 ’ ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( ’ C l xc3 x a 1 u d i o ’ , ’ u t f −8 ’ ) Ou dizer logo que se trata duma string unicode > u3 = u ’ C l u 0 0 e 1 u d i o ’ u1, u2 e u3 representam a mesma sequˆncia de grifos. e > p r i n t u1==u2 and u2==u3 True
  44. 44. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Argumentos em encoding amb´ ıguo Supor que ’nome’ cont´m o valor de um argumento de um pedido e GET depois de url decoded. S´ sabemos uma sequˆncia de bytes o e mas o utilizador realmente pretendeu introduzir o nome ’Cl´udio’. a http://domain.pt/?q=Cl%E1udio http://domain.pt/?q=Cl%C3%A1udio > nome1 = ’ C l x e 1 u d i o ’ > nome2 = ’ C l xc3 x a 1 u d i o ’ Como detectar heuristicamente o que o utilizador pretende?
  45. 45. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Argumentos em encoding amb´ ıguo Supor que ’nome’ cont´m o valor de um argumento de um pedido e GET depois de url decoded. S´ sabemos uma sequˆncia de bytes o e mas o utilizador realmente pretendeu introduzir o nome ’Cl´udio’. a http://domain.pt/?q=Cl%E1udio http://domain.pt/?q=Cl%C3%A1udio > nome1 = ’ C l x e 1 u d i o ’ > nome2 = ’ C l xc3 x a 1 u d i o ’ Como detectar heuristicamente o que o utilizador pretende?
  46. 46. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o ”Resolu¸˜o” ca Definir a fun¸˜o: ca def c l e a n a r g s ( s ) : try : r e t u r n u n i c o d e ( s , ’ u t f −8 ’ ) except U n i c o d e D e c o d e E r r o r : r e t u r n u n i c o d e ( s , ’ windows −1252 ’ ) O resultado destas fun¸˜o em ambas alternativas tem como ca resultado uma string unicode que representa realmente o nome pretendido. > c l e a n a r g s ( nome1 ) u ’ Cl xe1udio ’ > c l e a n a r g s ( nome2 ) u ’ Cl xe1udio ’
  47. 47. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o ”Resolu¸˜o” ca Definir a fun¸˜o: ca def c l e a n a r g s ( s ) : try : r e t u r n u n i c o d e ( s , ’ u t f −8 ’ ) except U n i c o d e D e c o d e E r r o r : r e t u r n u n i c o d e ( s , ’ windows −1252 ’ ) O resultado destas fun¸˜o em ambas alternativas tem como ca resultado uma string unicode que representa realmente o nome pretendido. > c l e a n a r g s ( nome1 ) u ’ Cl xe1udio ’ > c l e a n a r g s ( nome2 ) u ’ Cl xe1udio ’
  48. 48. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Como tratar conte´do com texto em v´rios encodings u a Bastantes p´ginas na Web em Portuguˆs tˆm conte´do a ee u identificado como estando em UTF-8, mas contendo caracteres representados em windows-1252 Outras identificam-se como estando em latin-1 ou windows-1252 mas contˆm palavras codificadas em UTF-8 e Uma solu¸˜o de compromisso consiste em: ca Assumir que todo o conte´do est´ em UTF-8 u a Quando um dado conjunto de bytes n˜o corresponder a a UTF-8 v´lido assumir que esses bytes representam caracteres a em windows-1252 ou latin-1
  49. 49. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Como tratar conte´do com texto em v´rios encodings u a Bastantes p´ginas na Web em Portuguˆs tˆm conte´do a ee u identificado como estando em UTF-8, mas contendo caracteres representados em windows-1252 Outras identificam-se como estando em latin-1 ou windows-1252 mas contˆm palavras codificadas em UTF-8 e Uma solu¸˜o de compromisso consiste em: ca Assumir que todo o conte´do est´ em UTF-8 u a Quando um dado conjunto de bytes n˜o corresponder a a UTF-8 v´lido assumir que esses bytes representam caracteres a em windows-1252 ou latin-1
  50. 50. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Implementa¸˜o ca import c o d e c s def h a n d l e e r r o r s ( ex ) : s = ex . o b j e c t [ ex . s t a r t ] r e t = u n i c o d e ( s , ’ windows −1252 ’ ) r e t u r n ( r e t , ex . s t a r t +1) codecs . r e g i s t e r e r r o r ( ’ clean ’ , h a n d l e e r r o r s ) Utilizar da seguinte forma: > i n p u t = ’ C l x e 1 u d i o C l xc3 x a 1 u d i o ’ > u n i c o d e ( i n p u t , ’ u t f −8 ’ , ’ c l e a n ’ ) u ’ Cl xe1udio Cl xe1udio ’ > p r i n t u n i c o d e ( i n p u t , ’ u t f −8 ’ , ’ c l e a n ’ ) Cl´udio Cl´udio a a
  51. 51. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Implementa¸˜o ca import c o d e c s def h a n d l e e r r o r s ( ex ) : s = ex . o b j e c t [ ex . s t a r t ] r e t = u n i c o d e ( s , ’ windows −1252 ’ ) r e t u r n ( r e t , ex . s t a r t +1) codecs . r e g i s t e r e r r o r ( ’ clean ’ , h a n d l e e r r o r s ) Utilizar da seguinte forma: > i n p u t = ’ C l x e 1 u d i o C l xc3 x a 1 u d i o ’ > u n i c o d e ( i n p u t , ’ u t f −8 ’ , ’ c l e a n ’ ) u ’ Cl xe1udio Cl xe1udio ’ > p r i n t u n i c o d e ( i n p u t , ’ u t f −8 ’ , ’ c l e a n ’ ) Cl´udio Cl´udio a a
  52. 52. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Isto ´ complicar sem necessidade e Basta trabalhar com bytes sempre em UTF-8 Esta abordagem n˜o funciona. a Como j´ vimos ’nome2’ representa o nome ’Cl´udio’ em UTF-8. a a Imaginemos que pretendemos imprimir este nome em mai´sculas. u > nome2 . u p p e r ( ) ’ C l xc3 x a 1 u d i o ’ > p r i n t nome2 . u p p e r ( ) CL´UDIO a N˜o ´ o resultado pretendido. ae > c l e a n a r g s ( nome2 ) . u p p e r ( ) u ’ CLxc1UDIO ’ > p r i n t c l e a n a r g s ( nome2 ) . u p p e r ( ) ´ CLAUDIO
  53. 53. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Isto ´ complicar sem necessidade e Basta trabalhar com bytes sempre em UTF-8 Esta abordagem n˜o funciona. a Como j´ vimos ’nome2’ representa o nome ’Cl´udio’ em UTF-8. a a Imaginemos que pretendemos imprimir este nome em mai´sculas. u > nome2 . u p p e r ( ) ’ C l xc3 x a 1 u d i o ’ > p r i n t nome2 . u p p e r ( ) CL´UDIO a N˜o ´ o resultado pretendido. ae > c l e a n a r g s ( nome2 ) . u p p e r ( ) u ’ CLxc1UDIO ’ > p r i n t c l e a n a r g s ( nome2 ) . u p p e r ( ) ´ CLAUDIO
  54. 54. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Resumo sequˆncias de bytes n˜o determinam caracteres univocamente e a sempre que poss´ trabalhar com strings unicode e ıvel especificar o encoding de bytes em p´ginas WEB a a WEB est´ progressivamente a migrar para UTF-8 a durante a transi¸˜o ´ publicado diverso tipo de conte´do com ca e u erros o problema de interpretar o que se pretende transmitir vs o que ´ realmente transmitido necessita de abordagens e heur´ ısticas
  55. 55. Introdu¸˜o Encodings mais comuns Unicode Exemplos de codifica¸˜es Utiliza¸˜o pr´tica C´digo exemplificativo Conclus˜es ca co ca a o o Referˆncias e Cons´rcio Unicode o http://www.unicode.org/ Joel on Software Informa¸˜o m´ ca ınima que todo o programador deve saber Characters and encodings http://www.cs.tut.fi/ jkorpela/chars/index.html
  56. 56. Apˆndice e Python Suporta Unicode ”out of the box” Tipos distintos para strings unicode e arrays de bytes (str, unicode) Assume encodings por omiss˜o e converte bytes para strings a unicode Suporte bem integrado com a maior parte dos m´dulos o
  57. 57. Apˆndice e Perl Suporta Unicode ”out of the box”(Encode, perluni) Utiliza o mesmo tipo para arrays de bytes e strings unicode Distin¸˜o feita implicitamente (bit marca strings unicode) ca Suporte no motor de regular expressions Abordagem impl´ıcita resulta em comportamentos com nuances por vezes pouco ´bvias o
  58. 58. Apˆndice e JAVA e C# Suporta Unicode ”out of the box” Tipos distintos para strings unicode e arrays de bytes Integra¸˜o total com todos os m´dulos ca o
  59. 59. Apˆndice e PHP5 N˜o suporta unicode de forma integrada a N˜o existem strings unicode, apenas bytes a ´ poss´ utilizar extens˜es (iconv, mbstring) E ıvel o Todo o processamento ´ feito obrigatoriamente utilizando e bytes, tipicamente UTF-8 Biblioteca insuficiente para processar strings ”multibyte”
  60. 60. Apˆndice e PHP6 Promete: Integrar Unicode Tipos distintos para strings unicode e arrays de bytes binary string (default encoding) unicode Permitir desligar suporte unicode (INI) Integrar unicode na maior parte das fun¸˜es built-in co
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×