2011-11-16 128 views
2

我加載一個外部xml文件。xml php mysql utf-8:希臘字符不顯示正確的xml

我得到一些節點值,在html中輸出em作爲選擇表單,並將這些加上由用戶輸入的文本保存到mysql中。

插入到mysql中的字符是希臘語。

我在我的html頭文件中使用utf8 meta,在PHP中使用sql連接之後的「SET NAMES utf-8」,在notpad ++編輯器中使用utf-8編碼,在我的table中使用utf-8_general_ci。 dtbs創建的排序規則是拉丁語,我手動將其更改爲utf8.Everything正確傳遞給MySQL。

直到現在我有一個函數,根據我的選擇生成一個xml。xml的節點名稱和值等於mysql query.Works完美的英文字符,但是當談到希臘語時,我只得到問號( 「?」)打印。另外,我已經在新的domdocument調用中包含了utf8選項。

任何想法,我該怎麼做才能在我的XML獲得希臘字符? 在此先感謝。

+0

是否定義XML編碼爲UTF-8? – PravinS

+0

是的,我的xml編碼是utf-8。 – Alx

+0

@Alx:介意將您的解決方案轉化爲實際答案?這樣你的答案可以被投票,這將有助於保持「未答覆」清單更清晰。謝謝。 –

回答

1

解決方案:

require("db.php");//Holds the connect info 

$sql = mysql_connect($hostname , $username , $password) 
**mysql_set_charset('utf8',$sql);** 
$dtbs = mysql_select_db("hyb",$sql); 

mysql_set_charset所做的工作。 我錯過了排序和字符集魔女之間的區別:

字符集是一組符號和編碼。排序規則是一組用於比較字符集中的字符的規則。讓我們用虛構字符集的例子來明確區分。

假設我們有一個帶有四個字母的字母表:「A」,「B」,「a」,「b」。我們給每個字母一個數字:「A」= 0,「B」= 1,「a」= 2,「b」= 3。字母「A」是一個符號,數字0是「A」 ,所有四個字母及其編碼的組合都是一個字符集。

Character Sets and Collations in General