推 francisko: 原來編碼是 big5? 08/21 23:55
→ ailu: 先匯入再轉成UTF-8不行嗎? 08/26 13:42
感謝版上的各位來信,這幾天的測試後發現問題不是在mysql上 狀況說明如下
因為這兩天反覆確認問題發生的原因,目前確定造成偏移的原因不是MYSQL而是PHP7之後
的版本造成的,原本的使用的PHP版本是5.6.31 MYSQL是5.5.54在匯入資料時因為我們都
是使用中文作為某些欄位的紀錄,將檔案存成CSV的UTF8模式匯入資料都沒有問題,正常
的情況如下圖顯示,文字與欄位都正常。
https://imgur.com/6gilAmH
轉移到新的伺服器後發現了相同的匯入資料會發生欄位偏移的問題,
匯入後會變成下圖這樣的情況,
https://imgur.com/qIUQ1dN
在pharmacy_name會塞入兩個數值,原本後面的數值會往前偏移,但如果把CSV檔案存成
ANSI模式則匯入資料就正常,但是中文顯示的部分會變成亂碼,就像下圖一樣
https://imgur.com/61xdPPc
新的伺服器PHP是7.4.9 MYSQL是8.0.21,為了排除問題我做了一些測試,後來發現將PHP
降回5.6.31的時候就不會出現這樣的問題,所以是PHP7造成匯入資料會偏移的問題。
希望有類似經驗能處理相關問題的鄉民朋友們來信討論並告知費用,謝謝
※ 編輯: yumemi2001 (140.116.93.140 臺灣), 08/27/2020 13:31:07
→ magus: 用工具匯出成.sql檔再匯入試試,請在測試環境執行,這個php 09/16 22:12
→ magus: 跟php比較沒關係,純粹是匯入時的問題,也可考慮換工具匯入 09/16 22:13
推 djmax: 問題解決了嗎? 還有再找人嗎? 我可以跟你保證不是php7的問 09/22 01:16
→ djmax: 題, php5.x->7.4, mysql5.x->8.0 我遇到的問題都解決過 09/22 01:18
→ djmax: 含php第三方套件升級後遇到的問題, mysql安全驗證的問題等 09/22 01:19
→ guanting886: 沒空 不過可以跟你說個經驗 就是你們做編碼轉換前跟 09/24 02:41
→ guanting886: 轉換後 或任何方式匯入到新系統上 裡面資料表的全欄 09/24 02:41
→ guanting886: 位資料仍要寫個程式校對一下 (若需要講究資料完整 09/24 02:42
→ guanting886: 跟正確一定要做) 09/24 02:42
→ guanting886: 另外要留意兩個 database的設定值、table 引擎、欄 09/24 02:43
→ guanting886: 位設定有沒有跑掉或是到新系統上有沒有其他的狀況 09/24 02:43