Omatech

Últimes entrades

01.2.2008 per Carlos

Posar accents en els mails

La codificació en UTF-8 sempre ha sigut un problema pels desenvolupadors web, i més encara en el mon del enviament de e-mails. Semblava que a Omatech teníem superada tota aquesta problemàtica que tants mals de cap ens ha donat, però avui hem descobert que encara teníem problemes amb els subjects amb caràcters accentuats. Com sempre, Google te la resposta.

A part de la codificació del propi e-mail, s’ha d’especificar que el subject contindrà caràcters en UTF-8:

=?UTF-8?B?T=EDtol del missatge?=
On cada caràcter accentuat vagi en ASCII (per exemple la í ha canviat a =ED). En PHP es tan fácil com fer:

$title=”=?UTF-8?B?”.base64_encode($title).”?=\n”;

Per una altre part, aprofito per explicar com aconsegueixo tenir els meus arxius de html o php amb bona codificació:

  1. Crear l’arxiu amb UTF sense BOM (Byte-Order Mark) que es el causant de que els arxius es visualitzin els caràcters “” al començament de la pàgina, i a més a l’IE6 es destrossa el disseny.
  2. Posar la capçalera <meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8” /> en el <head>.
  3. Obligar mitjançant PHP que la capçalera sigui UTF-8 amb: header(’Content-Type: text/html; charset=utf-8′);
  4. Comprovar que no hi ha cap caràcter abans de definir la capçalera amb la funcion header() de PHP, incloent espais i salts de línia
  5. Obligar que totes les extraccions de dades de la BD estiguin en UTF-8 amb la query: SET NAMES ‘utf8′;
....



Oma Technologies © 2006 | Lloc vàlid XHTML 1.0 Transitional i WAI-AA