iT邦幫忙

0

mysql匯出CSV檔案的問題

csv

請教大家
在使用moodle中,它裏頭的課程活動中,會有個匯出CSV的功能
http://ithelp.ithome.com.tw/upload/images/20170409/20003705Z2vUp3tOWH.jpg

但如果包含中文字的時候,都會是亂碼的格式,如下圖
http://ithelp.ithome.com.tw/upload/images/20170409/20003705shSEXfHBx9.jpg

而我有找到幾篇文章的說明,像是https://docs.moodle.org/32/en/UTF-8_and_BOM ,當我使用notepad軟體開啟這些CSV檔案的時候,它會顯示正常的中文內容,那是否有辦法可以在EXCEL開啟這個CSV檔案的時候也顯示正常的中文字呢?可以改mysql的哪個設定呢?謝謝

看更多先前的討論...收起先前的討論...
EXCEL 用匯入的方式,內碼要選 65001 - UTF8 之後匯入就會是正確了
ektrontek iT邦研究生 2 級 ‧ 2017-04-10 22:06:56 檢舉
前輩與simon0627有講到EXCEL匯入的方式,但我她要如何匯入呢?因為我只有看到開啟舊檔的方式(接著檔案格式選擇CSV,再選擇那個檔案) 謝謝
先開新檔,然後在資料頁籤那,取得外部資料,選從文字檔,再點CSV 檔案,然後設定分隔符號,內碼,就能匯入了
不了解的不會谷哥一下嗎?
https://www.google.com.tw/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=excel+%E5%8C%AF%E5%85%A5%E8%B3%87%E6%96%99
還有千萬不要讓 MYSQL 內碼 改成 BIG5,你一改,你的程式碼就要改,然後還要注意 許功 等特殊字元問題
那個工程浩大,就算要改 BIG5 也請直接用 NOTEPAD++ 之類的轉換 CSV 檔案,然後再匯入
這樣比較快,但實際上匯入非BIG5內碼 CSV 檔案到 EXCEL 是很簡單的,照上面步驟來就行了

2 個回答

1
bizpro
iT邦大師 1 級 ‧ 2017-04-09 19:57:08
最佳解答

一般設定MySQL/MariaDB支援UTF-8, 因此moodle輸出的是UTF-8格式, 但是Excel只讀取Big5格式, 而不支援UTF-8.

解決方法, 前面的優先:

  1. 使用Libreoffice: 直接使用Libreoffice, 或者開啟後轉存給Excel讀取.
    http://zh-tw.libreoffice.org/
  2. 修改moodle原始碼. 以iconv將所有輸出的字串由UTF-8格式轉為Big5.
  3. 將MySQL/MariaDB改為Big5.
ektrontek iT邦研究生 2 級 ‧ 2017-04-09 20:29:22 檢舉

感謝 滿有幫助的資訊

0
simon0627
iT邦新手 2 級 ‧ 2017-04-10 12:01:09

看你的狀況可以用NOTEPAD 開啟
最快的方式 應該是將該NOTEPAD資料另存新檔
另存時可以選擇使用的編碼方式 一般 常用的 ANSI=BIG5
UTF-8 則是大多數資料使用的
於匯入Excel 時 依所選的編碼方式進行
ANSI--最上面
UTF-8 --65501

看更多先前的回應...收起先前的回應...

http://ithelp.ithome.com.tw/upload/images/20170411/20097082EDWgmJPMBv.jpg

ektrontek iT邦研究生 2 級 ‧ 2017-04-11 20:50:35 檢舉

感謝,但遇到下列2個問題,而我試了幾種方式仍然一樣

  1. CSV檔內加上標題列總共有3列(1列標題列,2列清單),但我匯入的結果都只會顯示標題列+1筆清單
    http://ithelp.ithome.com.tw/upload/images/20170411/20003705BlyrrJeLRi.jpg
  2. 日期格式我改成YMD或者其他格式仍然顯示1491739200,有沒有辦法在EXCEL來調整MYSQL的日期格式
    http://ithelp.ithome.com.tw/upload/images/20170411/20003705oGVobDMTnW.jpg

謝謝

ektrontek iT邦研究生 2 級 ‧ 2017-04-16 20:37:51 檢舉

時間的格式控制部分有OK(參考文章:https://moodle.org/mod/forum/discuss.php?d=181110)

但資料匯入的部分仍然只匯入一筆,且看到EXCEL下面的空白列有到1048576,怎麼會超過EXCEL的限制呢?謝謝

ektrontek iT邦研究生 2 級 ‧ 2017-04-16 23:13:29 檢舉

我知道了,先用記事本編輯原本的CSV檔案來調整格式即可
感謝

我要發表回答

立即登入回答