Wednesday, April 13, 2005

Xml Encoding

Depois de uma resolver um conjunto de problemas relativos ao xml encoding, resolvi partilhar algumas notas.

Como já devem ter reparado :P , eu estou a escrever em português, e a lingua portuguesa tem alguns caracteres especiais, como por exemplo: ã; ou seja, os portugueses são especiais.
Ora como nós somos especiais de corrida, temos de ter a vida complicada, porque basicamente somos melhores, assim para que o xml não leve a mal a utilização dos referidos caracteres especiais é preciso conhecer as manhas do XML.

"Tanto paleio para nada!!"
Chiu, estou a treinar a minha vertente politica, já comprei uns óculos e tudo para parecer um politico, mas daqueles a tender para o intelectual.

E agora, alguma informação útil:
Como saber o enconding de um ficheiro xml?
1. Verificar se o 1. caracter do ficheiro é o BOM (Byte Order Character). Valores possiveis: 'UTF-8', 'UTF-16BE', 'UTF-16LE' ou NULL.

2. O xml parser tenta adivinhar o encoding com base nos primeiros caracteres (), tenta resolver num dos seguintes valores: 'UTF-8', 'UTF-16BE', 'UTF-16LE' ou NULL.

3. Se nada disto funcionou, o parser vai olhar para o encoding definido na processing instruction do xml ('').

Já agora, quero chamar a atenção para a utilização de clob de Oracle: muita atenção ao encoding utilizado, do que me apercebi, devem utilizar Unicode encoding.

Mais uma nota. Por defeito o VS.NET 2003, utiliza o Unicode encoding, mas se quiserem podem salvar os ficheiros com outro formato (advanced save options). Nas directivas dos aspx e ascx, podem indicar o charset e encoding utilizado.

E agora, o Euro (€)
Para utilizarem o símbolo do euro e os caracteres portugueses devem usar o xml encoding UTF-16.
Se quiserem outro encoding com suporte para os mesmo caracteres utilizem o iso-8859-15.
Euro aka € aka €

Ficam as notas

Presidente da República - Zé Ninguém

3 comments:

My Ubuntu World said...

Excelente!!!
3 anos depois o teu artigo foi-me extemamente útil.

Anonymous said...

Aprendi muito

Anonymous said...

Lingagem? Corrige lá isso.