quinta-feira, 9 de agosto de 2012

Tabela de Acentuação e Caracteres Especiais em HTML

Caracteres Acentuados no Português

ááÁÁããÃÃ
ââÂÂààÀÀ
ééÉÉêêÊÊ
ííÍÍóóÓÓ
õõÕÕôôÔÔ
úúÚÚüüÜÜ
ççÇÇ 

Caracteres Especiais

 espaço 
&e comercial&
>maior que>
<menor que&lt;
ˆacento circunflexo&circ;
˜acento til&tilde;
¨acento trema&uml;
´acento agudo&cute;
¸cedilha&cedil;
"aspas duplas&quot;
“ e ”aspas duplas (esquerda e direita)&ldquo; e &rdquo;
‘ e ’aspas simples (esquerda e direita)&lsquo; e &rsquo;
‹ e ›aspas angulares simples (esquerda e direita)&lsaquo; e &rsaquo;
« e »aspas angulares duplas (esquerda e direita)&laquo; e &raquo;
ºordenal masculino&ordm;
ªordinal feminino&ordf;
travessão 'en'&ndash;
travessão 'em'&mdash;
 hífen oculto&shy;
¯macron&macr;
reticências&hellip;
¦barra vertical&brvbar;
marcador (bullet)&bull;
parágrafo&para;
§parágrafo legal&sect;
espadas&spades;
paus&clubs;
copas&hearts;
ouros&diams;

Caracteres Comerciais

©copyright&copy;
®marca registrada&reg
trade mark&trade;
£libra esterlina&pound;
¢centavo&cent;
euro&euro;
¥iene (yen)&yen;
¤símbolo monetário&curren;

Caracteres Matemáticos e Lógicos

¹elevado a um&sup1;
²ao quadrado&sup2;
³ao cubo&sup3;
½fração um meio&frac12;
¼fração um quarto&frac14;
¾fração três quartos&frac34;
>maior que&gt;
<menor que&lt;
±mais ou menos&plusmn;
sinal de subtração&minus;
×sinal de multiplicação&times;
÷sinal de divisão&divide;
asterisco&lowast;
barra de fração&frasl;
por-mil&permil;
sinal de integral&int;
somatório&sum;
PI&prod;
raiz quadrada&radic;
infinito&infin;
quase igual&asymp;
aproximadamente igual&cong;
proporcional&prop;
idêntico&equiv;
diferente&ne;
menor ou igual&le;
maior ou igual&ge;
consequentemente&there4;
ponto&sdot;
·ponto do meio&middot;
diferença parcial&part;
parte imaginária do número&image;
parte real do número&real;
minuto&prime;
segundo&Prime;
°grau&deg;
ângulo&ang;
perpendicular&perp;
nabla&nabla;
soma direta&oplus;
produto de vetor&otimes;
alef&alefsym;
øproduto vazio&oslash;
Øproduto vazio&Oslash;
elemento de/pertence a&isin;
nã é elemento de&notin;
interseção&cap;
união&cup;
subconjunto de&sub;
superconjunto de&sup;
subconjunto de ou igual a&sube;
superconjunto de ou igual a&supe;
existe&exist;
qualquer&forall;
vazio&empty;
¬não lógico&not;
e lógico&and;
ou lógico&or;
retorno de carro&crarr;
← e →setas simples&larr; e &rarr;
↑ e ↓setas simples&uarr; e &darr;
seta simples&harr;
⇐ e ⇒setas duplas&lArr; e &hrrr;
⇑ e ⇓setas duplas&uArr; e &dArr;
seta dupla&hArr;
⌈ e ⌉teto (esquerdo e direito)&lceil; e &rceil;
⌊ e ⌋piso (esquerdo e direito)&lfloor; e &rfloor;
losango&loz;

Outros Acentos e Caracteres Especiais

ñ&ntilde;Ñ&Ntilde;¡&iexcl;¿&iquest;
ä&auml;Ä&Auml;å&aring;Å&Aring;
ë&euml;Ë&Euml;è&grave;È&Egrave;
ï&iuml;Ï&Iuml;ì&igrave;Ì&Igrave;
î&icirc;Î&Icirc; 
ö&ouml;Ö&Ouml;ò&ograve;Ò&Ograve;
ù&ugrave;Ù&Ugrave;û&ucirc;Û&Ucirc;
ý&yacute;Ý&Yacute;ÿ&yuml;Ÿ&Yuml;
æ&aelig;Æ&AElig;œ&oelig;Œ&OElig;
&dagger;&Dagger;š&scaron;Š&Scaron;
þ&thorn;Þ&THORN;ð&eth;Ð&ETH;
§&sect;ƒ&fnof;ß&szlig;µ&micro;

Caracteres Gregos

α&alpha;Α&Alpha;β&beta;Β&Beta;
γ&gamma;Γ&Gamma;δ&delta;Δ&Delta;
ε&epsilon;Ε&Epsilon;ζ&zeta;Ζ&Zeta;
η&eta;Η&Eta;θ&theta;Θ&Theta;
ι&iota;Ι&Iota;κ&kappa;Κ&Kappa;
λ&lambda;Λ&Lambda;μ&mu;Μ&Mu;
ν&nu;Ν&Nu;ξ&xi;Ξ&Xi;
ο&omicron;Ο&Omicron;π&pi;Π&Pi;
ρ&rho;Ρ&Rho;σ&sigma;Σ&Sigma;
ς&sigmaf;τ&tau;Τ&Tau;υ&upsilon;
Υ&Upsilon;φ&phi;Φ&Phi;χ&chi;
Χ&Chi;ψ&psi;Ψ&Psi;ω&omega;
Ω&Omega;ϑ&thetasym;ϒ&upsih;ϖ&piv;
Fonte

quarta-feira, 8 de agosto de 2012

PHP, MySQL e UTF-8 (o guia)

Trabalhar com UTF-8 no PHP pode dar algumas dores de cabeça pra quem é novo, e até mesmo para alguns mais velhinhos… O PHP trabalha por padrão com ISO-8859-1, que são os caracteres latinos que estamos acostumados. Entretanto, o UTF-8 tem uma abrangência maior de caracteres e o ideal seria que nos acostumássemos a usar este charset nas páginas.
Este pequeno tutorial tem como objetivo deixar bem claro quais os passos a se tomar para construir uma aplicação totalmente baseada no charset UTF-8, desde as páginas HTML, passando pelo PHP e por fim no MySQL.
Antes de tudo, aconselho que aprenda a criar os seus arquivos utilizando o UTF-8 sem BOM, que evitará dores de cabeça futuras quando estiver trabalhando com cookies, sessões e headers.
O segundo passo é definir, no PHP que o charset dos arquivos que serão gerados terão a codificação UTF-8, com o seguinte código:
<?php
ini_set('default_charset','UTF-8');
?>

Definir o idioma (opcional mas recomendado)
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br" />
Só setar o charset no PHP não adianta muito, pois alguns navegadores usam a codificação padrão da região do usuário, a não ser que o seguinte código esteja entre as tags <head> e </head>:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8 />
Com isso, você já pode trabalhar tranquilamente com UTF-8 e PHP sem ter problemas com os caracteres.
Alguns cuidados são necessários quando for trabalhar com o MySQL, entretanto. Vou ensinar como se faz pelo PHPMyAdmin, que acredito que todos que começaram a trabalhar com MySQL estão acostumados.
Em primeiro lugar, ao criar o seu banco de dados, já crie usando o collation utf8_general_ci. Se o banco de dados já tiver um collation definido, não é necessário definir o collation das tabelas, pois elas herdarão o do banco. Mas mesmo assim é bom especificar o charset e collation de cada tabela. Como? Assim:
CREATE TABLE Clientes (
id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nome VARCHAR(60) NOT NULL,
PRIMARY KEY(id)
)
TYPE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

Ok. Nossa tabela está trabalhando com UTF-8 agora. Podemos começar a programar e relaxar porque nossos problemas com charset estão resolvidos, certo?
A resposta é não.
Se você continuar a programar com o sistema assim, os dados do banco serão inseridos e consultados de maneira correta, mas você vai perceber problemas quando tentar fazer buscas com palavras acentuadas insensível a maiúsculas, por exemplo:Águaágua e agua serão palavras totalmente diferentes, sem contar que a ordenação de resultados com palavras que começam com letras acentuadas sairá bem bagunçada, coma letra Ó vindo antes de B, por exemplo.
Esse é o problema que eu tive e que demorei eras pra descobrir. O banco estava OK, o PHP também, o mesmo com as páginas HTML… e quando eu inseria algum dado pelo PHPMyAdmin, este era inserido corretamente, o que significava que o problema não era no banco e sim na aplicação.
Depois de meses na verdade foram apenas algumas horas de pesquisa, desconfiei que havia algo na conexão com o MySQL que estava dando esse problema. Fui fuçar no Manual do PHP e encontrei a seguinte solução:
<?php
ini_set('default_charset','UTF-8'); // Para o charset das páginas e
mysql_set_charset('utf8'); // para a conexão com o MySQL
?>

Com isso todos os meus problemas foram resolvidos. Na verdade não, pois tive que alterar todos os campos acentuados da tabela…
Dá para usar a função mysql_client_encoding para identificar o charset da conexão com o MySQL, mas não acho necessário pra quem quer trabalhar diretamente com UTF-8 e não com vários charsets.

Fonte