2010-08-01 22 views
0

J'essaye d'obtenir un encodage UTF-8 avec CKEditor/PHP/MySQL/HTMLPurifier.Le caractère '+' n'est pas sauvegardé via CKEditor/PHP/MySQL/HTMLPurifier

J'ai converti les jeux de caractères des tables/champs de base de données en utf8-unicode-ci.

je définir les paramètres suivants dans la configuration ckeditor:

config.entities = true; 
config.entities_latin = true; 
config.entities_greek = true; 
config.entitles_processNumerical = true; 

Et PHP purifie le HTML avec htmlpurifier avec les paramètres par défaut. Je ne suis pas sûr si je fais la bonne chose pour essayer d'accepter UTF-8, mais des caractères tels que α fonctionnent ... mais pour quelque raison, tout '+' dans le texte disparaît simplement .

Des idées?

+2

+ signes de disparition semble indiquer que vous faites en quelque sorte le codage URL/décodage aller-retour, mais vous n'avez pas donné assez d'informations pour que je le sache vraiment. Est-ce que les signes plus se transforment en espaces? Pouvez-vous mettre dans les déclarations de débogage? Que voit HTML Purifier? –

Répondre

0

J'avais urlencoded le texte inutilement avant la demande de publication, alors que jQuery/AJAX l'encodait déjà. Suppression de l'encodage javascript() et de l'urldecode PHP() et correction du problème.

0

Assurez-vous que le texte est urlencodé avant la demande de publication. Si vous n'encodez pas le texte, le caractère '+' sera traité comme un espace. Si vous tapez le texte, le caractère '+' ressemblera à: '% 2B'.

0

Pour 3.x CKEditor et plus et pour les formes php essayer ce

include_once "ckeditor/ckeditor.php"; 
// The initial value to be displayed in the editor. 
$initialValue = 'This is a test - Αυτο ειναι ενα τεστ'; 
// Create class instance. 
$CKEditor = new CKEditor(); 
// Path to CKEditor directory, ideally instead of relative dir, use an absolute path: 
// If not set, CKEditor will try to detect the correct path. 
$CKEditor->basePath = 'ckeditor/'; 
$CKEditor->config['height'] = 450; 
$CKEditor->config['skin'] = 'kama'; 
**$CKEditor->config['entities_greek'] = false;** 
$CKEditor->editor('MyEditor',$initialValue); 

Manos Les

grecs