2012-06-14 78 views
0

我有12個excel文件,每個文件都有大量數據組織在2個字段(列)中:idtext通過CSV導入excel數據到MySQL的問題

每個excel文件使用的文字領域一個diferent語言:西班牙語,意大利語,法語,英語,德語,阿拉伯語,日語,rusian,韓國,中國,日本和葡萄牙。

id字段是字母和數字的組合。

我需要將每個excel導入到不同的MySQL表中,因此每種語言一個表。

我試圖做到這一點的方式如下: - 保存Excel作爲一個CSV文件 - 導入CSV在phpMyAdmin

的問題是,我得到各種各樣的問題,我可以無法正確導入它們,可能是因爲編碼問題。例如,使用阿拉伯數字,我將所有內容設置爲UTF-8(數據庫表格字段和CSV文件),但是當我進行導入時,我會得到奇怪的字符而不是常規的阿拉伯字符(如果我手動複製它們,它們顯示正常)。

我得到的其他問題是,有些文本使用逗號,而且由於CSV文件也使用逗號分隔字段,因此只要有逗號,導入的文本就會被截斷。

其他問題是,當保存爲CSV時,字符會變得混亂(像中文一樣),而且我找不到一個選項來告訴excel我想在CSV文件中使用哪種編碼。

是否有任何「協議」或「規則」,我可以遵循,以確保我做到了正確的方式?適用於每種不同語言的東西?我試圖關注字符編碼,但即使如此,我仍然會得到奇怪的東西。

也許我應該嘗試一種不同的方法而不是CSV文件?

任何意見將不勝感激。

回答

0

在CSV中做的一件標準事情是用雙引號括住包含逗號的字段。所以

ABC, johnny cant't come out, can he?, newfield 

成爲

ABC, "johnny cant't come out, can he?", newfield 

我相信Excel中做到這一點,如果你選擇保存爲文件類型CSV。你會遇到的一個問題是,CSV是僅限於ANSI的。我認爲你需要使用「Unicode文本」另存爲選項,並使用製表符分隔符或將它們轉換爲逗號。 Unicode文本選項也引用包含逗號的值。添加特定的方向

Excel 2007中(具體可能是Excel的其他版本不同)

選擇 「另存爲」

編輯(使用Excel 2007中選中)

在「另存爲類型:」字段中,選擇「Unicode文本」

save dialog screenshot

你會得到一個Unicode文件。 UCS-2 Little Endian,具體而言。

+0

@DaceE我通過在Windows控制面板 - >語言選項中將分隔符更改爲分號(;)來解決逗號問題。但是,我仍然有特殊字符編碼語言的問題。例如,當我將這些阿拉伯文文件導出爲CSV格式時,我所得到的全部是?????而不是阿拉伯文符號,但我不知道如何告訴excel使用什麼編碼 – Albert

+0

@Albert - 您不能將CSV用於非ANSI字符;您需要爲平面文件輸出使用Unicode文本(製表符分隔)導出類型。 (請參閱我的回答編輯示例。 – DaveE

+0

非常感謝您的回覆,我設法使其適用於Google文檔。我想知道爲什麼它提供的CSV具有所有字符。 – Albert

0

好的,我該如何解決我所有的問題?忘記關於EXCEL!

我把excels上傳到了Googledocs電子表格,下載成CSV格式,所有的字符都是完美的。

然後,我只需使用「utf_general_ci」排序規則將它們導入到表格的相應字段中,現在所有內容都可以完美地上傳到數據庫中。