簡體   English   中英

在mysql中導出和導入utf8數據:最佳實踐

[英]export and import utf8 data in mysql: best practices

我們經常面臨需要使用他/她需要翻譯的數據庫中的數據向我們的一個客戶發送數據文件。 大多數情況下,此導出是CSV或XLS。 大多數情況下,我們使用phpmyadmin創建一個csv轉儲,並獲取一個xls文件作為回復的翻譯數據。 問題是,大多數情況下數據是UTF8,當文件以xls形式返回時,每次我們再次將數據加載到mysql中時,我們最終會出現utf8問題,字符無法正常顯示等等...

我們已經將mysql中的所有內容從my.conf復制到了列字符集,並且所有內容都正確設置為UTF8。

我的問題不是如何解決編碼問題,因為已經解決了,但我們將來如何最好地處理這種情況呢? 我們應該交出哪種出口格式? 我們應該如何導入(只是mysql加載數據infile或我們自己的處理腳本)。 關於如何處理這種情況的一般共識是什么?

我們希望盡可能繼續使用excel,因為幾乎每個人都希望包括我們客戶的翻譯機構。 我們客戶的易用性是這里最重要的因素,每次都不會讓我們遇到重大問題。 兩全其美的 :)

我目前正在處理的應用程序也包括數據導入的功能。 數據主要以utf-8編碼。

我的方法是將導入的CSV(或制表符分隔)(在任何編碼中)文件預處理為客戶端腳本(Python)中正確的utf-8編碼的臨時CSV文件,並使用LOAD DATA INFILE語句加載文件的內容。

文件的編碼由character_set_database系統變量控制(該變量應在服務器級別設置),從MySQL 5.1.17開始可以通過LOAD DATA INFILE的CHARACTER SET子句覆蓋。

唯一應該知道的是MySQL為每個字符存儲最多3個字節而不是4個字符(這可能是東方語言的問題)。

要有效地導出大量數據,可以使用SELECT ... INTO OUTFILE語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM