2009-10-08 4 views
0

De temps en temps en temps mon PostgreSQL DB signale une erreur étrange:PostgreSQL UTF8 Handling


[client] Erreur postgres7: [-1: ERREUR: séquence d'octets invalide pour l'encodage \ "UTF8 \": 0xB4 CONSEIL: Cette erreur peut également se produire si la séquence d'octets ne correspond pas au codage attendu par le serveur, contrôlé par \ "client_encoding \".] Dans adodb_throw (INSERT INTO page_comments (pageid, pagetype, sender_name, sender_mail, sender_url, comment, owner_uid, owner_gid, sortorder, niveau, parent) VALEURS ( 1493, 102, \ 'alexis \', \'[email protected] \ ', \' \ ', \'

Vendredi prochain, je vais visiter Barcelone alors si vous avez besoin d'une de ces tasses s'il vous plaît faites le moi savoir .

\ », 1000, 1000, 1, 1, NULL ),)


Maintenant, je vois qu'il vient du signe drôle apostrophe. Pourtant, je suis totalement confus, comme la base de données a été initialisée en UTF8, l'application web est au service des pages UTF8, et, de plus, le contenu est même utf8_encodé avant d'être poussé dans la base de données.

Est-ce que quelqu'un sait comment éviter cette erreur?

Répondre

2

U + 00B4, ACUTE ACCENT, est codé comme '\ xb4' dans ISO-8859-1. En UTF-8, ce serait '\ xc2 \ xb4'. Donc, une partie de votre application change l'encodage en Latin-1. Trouvez et corrigez cet endroit, et l'erreur devrait disparaître.

+0

merci! J'ai juste compris que les requêtes ajax n'étaient pas encodées correctement par javascript, donc _some_ symboles ont été foirés. – clops