超大檔案編碼轉換

2021-08-13 19:34:00 字數 1354 閱讀 5030

最近導資料,從gbk轉到utf8,檔案太大了120多m,普通編輯器無法開啟

網上有人用vim轉換,成功率也很高,iconv有時候不能轉換

如開啟windows中以ansi儲存的檔案

vim file.txt -c "e ++enc=gb18030"
在vim中直接進行轉換檔案編碼,比如將乙個檔案轉換成utf-8格式

:set fileencoding=utf-8

儲存就可以了

我是從舊的mysql匯出來乙個文字檔案

the mysql server is running with the --secure-file-priv option so it cannot execute this statement

設定mysql乙個安全目錄,因為這個之前是乙個漏洞,可以用phpmysqladmin提權,後來mysql封了這個漏洞

secure_file_priv=/var/lib/mysql

這樣可以匯入和匯出了

下面mysql資料匯出方式和匯入

為了解決第一種方法中總結時說到的問題,在網上苦苦查詢了一天資料才東拼西湊的搞出乙個比較穩妥的解決方法

步驟一將待匯出的資料表的表結構匯出(可以用phpmyadmin、mysqldump等,很簡單就不說了),然後將匯出的create table語句的charset=latin1改為charset=utf8,在目標庫newdbname中執行該create table語句把錶結構建好,接下來開始匯出-匯入資料

步驟二命令列:進入mysql命令列下,mysql -hlocalhost -uroot -p*** dbname

步驟三執行sql select * from tbname into outfile '/usr/local/tbname.sql';

步驟四將tbname.sql轉碼為utf-8格式,建議使用ultraeditor,可以直接使用該編輯器的'轉換->ascii到utf-8(unicode編輯)',或者將檔案另存為utf-8(無bom)格式

步驟五在mysql命令列下執行語句 set character_set_database=utf8;  注:設定mysql的環境變數,這樣mysql在下一步讀取sql檔案時將以utf8的形式去解釋該檔案內容

步驟六在mysql命令列下執行語句 load data infile 'tbname.sql' into table newdbname.tbname;

注意:千萬不要忘了第四步

採用第二種方法,所有資料均正常匯入,且格式轉換成功沒有亂碼

php 讀取超大檔案

php開發很多時候都要讀取大檔案,比如csv檔案 text檔案等。這些檔案如果很大,比如10個g。這時,直接一次性把所有的內容讀取到記憶體中計算不太現實。遇到這種情況,往往覺得php太弱,實則不然。利用生成器 關鍵字yield 就能解決。好了,上 created by phpstorm.user a...

超大檔案的copy

超大檔案的copy 一 幾g或幾十g的檔案的copy 例如需要拷貝exe,iso到遠端的機器上,我們可以使用如下的方法 多執行緒copy 1 split copy cat split and cat are linux command,you can get them from unxutils 2...

Python chunk讀取超大檔案

16gb小水存已經不能適應動輒4gb 8gb的資料檔案了。查詢到pandas的read csv 提供了chunk分塊讀取能力。這是一張原始的table in 185 table pd.read csv tmp.sv sep in 186 table out 186 unnamed 0 0 1 2 3...