I use UTF-8 encoding to type a document in French, with the following definitions for guillemets:
\DeclareUnicodeCharacter{AB}{\og}
\DeclareUnicodeCharacter{BB}{\fg\xspace}
and the Babel package:
\usepackage[francais]{babel}
However, when I type a text like ceci cela «~quoted~» ceci cela, the spacing is wrong around the opening guillemet:

Notice that the space before the opening guillemet is too small, and the spacing after is too large. The closing guillemet has correct spacing. How could I fix that?


babelpackage earlier this year, regarding this particular issue when using XeLaTeX. He issued a corrective patch within days, which is available for download here. (Note: I am unsure whether it solves your problem, but someone might be interested in this anyway.) – ienissei Sep 11 '12 at 8:09