2008-12-10 70 views
0

我有以下UTF-8的文件從Microsoft Access文件導出MySQL和PHP的unicode問題

http://www.yousendit.com/download/TTZtT214SU84Q1FLSkE9PQ

我已確保我的mysql數據庫是UTF8與地位;命令爲客戶端和服務器。我插入上面的文件到我的數據庫使用以下命令:

LOAD DATA LOCAL INFILE 'tblAuction1.txt' INTO TABLE Auctions FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'; 

所有,似乎是想種好了,Unicode字符顯示在HTML,因爲他們應該是,據我可以告訴。數據庫字段的直接內容是在這裏:

http://www.nomorepasting.com/getpaste.php?pasteid=22622

但是顯示生成的HTML代碼:

http://www.nomorepasting.com/getpaste.php?pasteid=22617

該款顯示器作爲

費用清單

1.00 
<\/OBJECT> 
');\n\t\t<\/SCRIPT>\n\t\t 

在瀏覽器中

我使用表明這一點的代碼是:

http://www.nomorepasting.com/getpaste.php?pasteid=22618

之前,我改變了編碼,這是工作的罰款。

作爲一個側面問題,我想知道爲什麼從製表符分隔變爲分號分隔,並且將字段括起來會使導出文件的大小減半。製表符是一個單獨的字符,就像;字符,並添加引號附加應該增加了大小?

回答

1

根據您可能需要Web服務器的配置,明確將編碼設置爲「text/html的;字符集= UTF-8」,與header()

header('Content-Type: text/html; charset=UTF-8'); 

這應該足以爲您的具體問題,但是 - 如果您還想操作字符串 - 請注意,PHP包含許多不適合使用多字節字符的函數:您至少應該正確配置mbstring extension

我的書籤中也有這個cheatsheet,我認爲它還是相關的。

+0

這似乎沒有解決任何問題,這可能是數據庫的問題?這似乎是一個問題,意味着傳遞給document.write的html,並且標籤在某個地方沒有關閉。 – 2008-12-10 14:10:51