2016-06-08 142 views
0

我想保存文本,然後在Joomla中顯示來自MySQL數據庫的文本。在Joomla中顯示MySQL數據庫中的特殊字符

我創建了一個PHP文件,通過發佈保存文本。

$text = $_POST['text']; 
$text = mysql_real_escape_string($text); 
mysql_query("INSERT INTO question(`question`) VALUE('$text')"); 

我從單詞複製的文本有一個特殊的字符。

線複製是:

Total age = 20 × 9 = 180 years 

在數據庫表(字符集= UTF8 COLLATE = utf8_unicode_ci),如果我在一個PHP取這個文本的文本保存爲

Total age = 20 × 9 = 180 years 

現在並在該PHP我添加此行:

<meta charset="UTF-8"> 

然後文本顯示正確。

如果我在已經有utf-8 meta(在源代碼中籤入)的Joomla網站中獲取相同的文本,則文本顯示不正確。它總是顯示:

Total age = 20 × 9 = 180 years 

我曾嘗試添加這些:

mysql_set_charset('utf8'); 
ini_set('default_charset', 'UTF-8'); 
header('Content-Type: text/html; charset=utf-8'); 
mysql_query("SET NAMES 'utf8'"); 
utf8_encode($text); 

,但我無法字符解碼內部的Joomla。請幫忙。

+0

它不是主題,而是:爲什麼使用mysql_query? Joomla提供了一個您可以使用的自己的數據庫類:https://docs.joomla.org/Selecting_data_using_JDatabase。 – trajo

+0

我只在非Joomla頁面上使用mysql_query。我創建了一個單獨的PHP文件,並試圖插入數據並獲取Joomla –

回答

0

嘗試以下操作:

  • 使用utf8_general_ci作爲編碼所有的表
  • 使用utf8_general_ci作爲編碼數據庫

您可以在phpMyAdmin這些改變(我覺得這是查詢更改所有表的字符編碼)

+0

中的數據我改變了編碼(表和數據庫),但文本仍然無法正確顯示。我甚至刪除了表,並創建了一個新的utf8_general_ci編碼,但仍然沒有成功。我認爲問題不在於數據庫如何保存文本,因爲我可以在Joomla外部正確顯示文本。它必須是Joomla如何編碼文本的地方。 –