Ahaha x'D Courage ^^
Je me suis tappé la tête contre le mur pendant plusieurs jours avec l'encodage en PHP et même un peu en Python (surtout le 2 qui me casse les noises :o)
Mon site se convertit en UTF-8, yeay !! :DD
Au fait, j'crois que tu n'utilises pas de BDD genre MySQL toi, mais sachez que, en plus de tous les autres trucs qui font chier en PHP vis-à-vis de l'UTF-8 mal géré nativement, MySQL utilise également un encodage à la con de base pour ces communications :/ donc rien à voir avec la façon dont vous stockez vos chaines dans la BDD. Quand vous les récup, il convertit en ISO quelque chose ce con :o (lol) sauf si vous faites la requête SET NAMES utf-8.
Rappel: Utilisez toujours et partout UTF-8. Les problèmes viennent des autres encodages !! Si vous ne prenez pas la bonne habitude de mettre de l'utf-8 partout, vous "risquez" d'en chier lorsque vous voudrez reconvertir en UTF-8 (car c'est un milliard de fois mieux).
Tiens, je connaissais pas, c'est marrant cette notation :)
print('\N{left-pointing double angle quotation mark}') # Output: «
Et pour avoir le nom d'un caractère :
import unicodedata
print(unicodedata.name('«')) # Output: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK