SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
Augusto
Pascutti





                    Augusto
Pascutti
‐
ConaPHP
2008
   1

  Graduando
em
Sistemas
de
Informações



  Programador
a
4
anos



  Especialista
em
soluções
Web


  Zend
Certified
Engineer



  Trabalha
atualmente
na
Gráficos
Burti

            Augusto
Pascutti
‐
ConaPHP
2008
   2

  O
que
é
encoding

    Alguns
encodings
existentes

    Unicode


  Problemas
mais
comuns



  Solucões




                Augusto
Pascutti
‐
ConaPHP
2008
   3

  Ajax



  Internacionalização



  Comunicação
com
outros
S.O.


  Webservices



  RSS

            Augusto
Pascutti
‐
ConaPHP
2008
   4

Augusto
Pascutti
‐
ConaPHP
2008
   5

  O
que
é
um
Caractere
?

  O
que
é
um
Conjunto
de
Caracteres
?

  Encoding:
Conjunto
de
caracteres
codificados



  Alguns
encodings
existentes:

    ASCII
(1968)

    ISO‐8859‐1
(1985
‐
2004)

    UTF‐8
(1993)


              Augusto
Pascutti
‐
ConaPHP
2008
    6

  Oficialmente
desde
1968



  7
bits



  128
caracteres


  Contempla
todos
os
caracteres
ingleses




             Augusto
Pascutti
‐
ConaPHP
2008
   7

  Diversos
“sets”
com
256
caracteres
cada



  Um
set
para
cada
língua



  Caracteres
acentuados
!





            Augusto
Pascutti
‐
ConaPHP
2008
   8

  Universal
Character
Set



  Compreende
todas
as
línguas
conhecidas



  UTF‐8,
UTF‐16,
UTF‐32


  Multi‐byte



  UTF‐8
compatível
com
ASCII

             Augusto
Pascutti
‐
ConaPHP
2008
   9

  Comunicação
com
outros
aplicativos/serviços

    Ajax

    Webservices

    Feeds





              Augusto
Pascutti
‐
ConaPHP
2008
    10

  Informar
encoding
utilizado



    HTML

    PHP


    XML

    text/plain





               Augusto
Pascutti
‐
ConaPHP
2008
   11

  HTML


  <meta http-equiv=quot;Content-Typequot; content=quot;text/html; charset=utf-8quot;/>




                 Augusto
Pascutti
‐
ConaPHP
2008
                        12

  HTML
(
Ooops
….
)





            Augusto
Pascutti
‐
ConaPHP
2008
   13

  PHP
,
XML,

text/plain





             Augusto
Pascutti
‐
ConaPHP
2008
   14

  Caracteres
Multi‐byte
e
funções
de
string


     strlen()

     substr()

     strtoupper()

     split()

   








.

   








.

   








.

                 Augusto
Pascutti
‐
ConaPHP
2008
   15

  strlen()





               Augusto
Pascutti
‐
ConaPHP
2008
   16

  substr()





               Augusto
Pascutti
‐
ConaPHP
2008
   17

  Iconv



  Mbstring



  PHP
6





               Augusto
Pascutti
‐
ConaPHP
2008
   18

  Glibc



  Habilitado
por
padrão
no
PHP
5



  Mais
lenta
que
a
mbstring


  Boa
para
conversão
de
strings



  Trava
em
strings
mal
formadas

            Augusto
Pascutti
‐
ConaPHP
2008
   19

  iconv()

  iconv_strlen()

  iconv_strpos()

  iconv_substr()



  iconv_set_encoding()

  ob_iconv_handler()




             Augusto
Pascutti
‐
ConaPHP
2008
   20

  iconv_strlen()





             Augusto
Pascutti
‐
ConaPHP
2008
   21

  iconv_substr()





             Augusto
Pascutti
‐
ConaPHP
2008
   22

  Output
Buffer





            Augusto
Pascutti
‐
ConaPHP
2008
   23

  Não
é
habilitada
por
padrão
no
PHP



  Não
trava
em
strings
mal
formadas



  Maior
número
de
funções


  Mais
rápida
que
a
iconv




            Augusto
Pascutti
‐
ConaPHP
2008
   24

  mb_strlen()

  mb_ereg_*

  mb_str*

  mb_convert_encoding()



  Output
Buffer





             Augusto
Pascutti
‐
ConaPHP
2008
   25

  mb_strlen()





             Augusto
Pascutti
‐
ConaPHP
2008
   26

  mb_substr()





            Augusto
Pascutti
‐
ConaPHP
2008
   27

  Output
Buffer





            Augusto
Pascutti
‐
ConaPHP
2008
   28

  Só
converte
ISO‐8859‐1
para
UTF‐8
!



  Não
trava
em
strings
mal
formadas





            Augusto
Pascutti
‐
ConaPHP
2008
   29

Augusto
Pascutti
‐
ConaPHP
2008
   30

  Sempre
saiba
o
encoding
!

   ▪  Código

   ▪  Banco
de
dados


  Dê
preferência
ao
Unicode
(UTF‐8)



  Cuidado
com
funções
de
string
nativas





              Augusto
Pascutti
‐
ConaPHP
2008
   31

  http://www.php.net



  http://www.phpwact.org/php/i18n/charsets


    http://randomchaos.com/documents/?source=php_and_unicode





                   Augusto
Pascutti
‐
ConaPHP
2008
              32

augusto.hp@gmail.com


www.augustopascutti.com




 Augusto
Pascutti
‐
ConaPHP
2008
   33


Mais conteúdo relacionado

Mais procurados

Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web FrameworkUliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Frameworkmodou li
 
第2回PHP懇親会発表資料
第2回PHP懇親会発表資料第2回PHP懇親会発表資料
第2回PHP懇親会発表資料Masahiko Sakamoto
 
TracWysiwygPlugin
TracWysiwygPluginTracWysiwygPlugin
TracWysiwygPluginJun Omae
 
JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)gyuque
 
Drupal - 教育網路中心課程
Drupal - 教育網路中心課程Drupal - 教育網路中心課程
Drupal - 教育網路中心課程Charles Chuang
 
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!devsumi2009
 
智慧型手機
智慧型手機智慧型手機
智慧型手機Kelun Yang
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)zetamatta
 
Windows MobileとWeb Api
Windows MobileとWeb ApiWindows MobileとWeb Api
Windows MobileとWeb ApiKenji Wada
 

Mais procurados (15)

Uliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web FrameworkUliweb 快速易用的Python Web Framework
Uliweb 快速易用的Python Web Framework
 
MSICC
MSICCMSICC
MSICC
 
JavaScript再入門
JavaScript再入門JavaScript再入門
JavaScript再入門
 
第2回PHP懇親会発表資料
第2回PHP懇親会発表資料第2回PHP懇親会発表資料
第2回PHP懇親会発表資料
 
TracWysiwygPlugin
TracWysiwygPluginTracWysiwygPlugin
TracWysiwygPlugin
 
Pseudo Perl
Pseudo PerlPseudo Perl
Pseudo Perl
 
JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)JSplash swf to javascript converter(2008/9/30)
JSplash swf to javascript converter(2008/9/30)
 
Drupal - 教育網路中心課程
Drupal - 教育網路中心課程Drupal - 教育網路中心課程
Drupal - 教育網路中心課程
 
Android JNI
Android JNIAndroid JNI
Android JNI
 
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
【13-D-4】 アナタのアプリ性能改善の秘訣、オラクルが教えます!
 
Yarvmi
YarvmiYarvmi
Yarvmi
 
智慧型手機
智慧型手機智慧型手機
智慧型手機
 
S20
S20S20
S20
 
Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)Programming言語Lua紹介(Internet版)
Programming言語Lua紹介(Internet版)
 
Windows MobileとWeb Api
Windows MobileとWeb ApiWindows MobileとWeb Api
Windows MobileとWeb Api
 

Encoding e o PHP 5