linux中運行windows中編寫的文件出現亂碼

linux中運行windows中編寫的文件出現亂碼

問題:

windows下用matlab寫的代碼(.m)文件復制到linux(Ubuntu)下,注釋的中文全是亂碼,反之,也是一樣的問題。

原因:

Windows下默認使用的是GB2312編碼,Linux默認使用的是UTF-8。 所以在Windows下產生的代碼是GB2312編碼,在Linux下當然識別為亂碼 ; 反之,同理亂碼 。

免費視頻教程推薦:linux視頻教程

解決方法:

直接對文件編碼格式進行轉碼。

使用linux下的iconv命令改變文件的編碼:

test1.m由GB2312轉換成UTF-8(windows下matlab的代碼在linux下運行)

iconv ?-f? GB2312 ?-t ?UTF-8 ?test1.m ?-o? test1.m

test2.m由UTF-8轉換成GB2312(linux下matlab的代碼在windows下運行)

iconv -f ?UTF-8 ?-t ?GB2312? test2.m ?-o? test2.m

如果文件過多,要進行批處理,可用如下編寫的shell腳本批量轉換編碼。

使用方法: 將該腳本放在需要進行轉換的文件夾中, 執行腳本,可以將當前目錄和其子目錄下的所有文件轉換成指定的編碼方法 。

執行如下:

由GB2312轉換成UTF-8

./convertMatlab.sh ?win

由UTF-8轉換成GB2312

./convertMatlab.sh ?linux

提示:?普通用戶沒有執行權限,需要用chmod +x convertMatlab.sh?增加執行權限

相關文章教程推薦:linux視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享