2010-08-01 35 views
0

我正在嘗試使用CKEditor/PHP/MySQL/HTMLPurifier來獲得UTF-8編碼。通過CKEditor/PHP/MySQL/HTMLPurifier不能保存'+'字符

我已將數據庫表/字段的字符集轉換爲utf8-unicode-ci。

我已在CKEditor的配置如下:

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

和PHP與使用默認設置HTMLPurifier淨化HTML。

我不知道如果我做了正確的事情想接受UTF-8,但字符,如α正在努力......但出於某種原因,任何「+」在文中只是簡單的消失。

任何想法?

+2

+消失的跡象似乎表明,你以某種方式做URL編碼/解碼往返,但你沒有給我足夠的信息讓我真正說出。加號是否變成空格?你可以把調試語句? HTML Purifier看到了什麼? – 2010-08-02 00:34:22

回答

0

我不必要地在發佈請求之前urlencoded文本,而jQuery/AJAX已經對它進行了編碼。刪除了javascript encode()和PHP urldecode(),它解決了這個問題。

0

確保文本在發佈請求前被urlencoded。

如果你不'urlencode'的文字,那麼'+'字符將被視爲空間。 如果您對文本進行urlencode編碼,那麼'+'字符將如下所示:'%2B'。

0

對於CKEditor的3.x和更大的和PHP的形式嘗試這個

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); 

馬諾斯希臘