Matlab代碼從Windows拷貝到Linux變成亂碼
2017-02-14 by:CAE仿真在線(xiàn) 來(lái)源:互聯(lián)網(wǎng)
Matlab代碼從Windows拷貝到Linux變成亂碼環(huán)境 Ubuntu 14.04 Matlab 2014b
問(wèn)題
將matlab代碼從Windows中復(fù)制到Linux中(或從Linux復(fù)制到Windows)時(shí),matlab代碼中的中文注釋部分變成了亂碼。
原因
Windows和Linux中的默認(rèn)編碼不同,Windows中默認(rèn)為GB2312,Linux中默認(rèn)為UTF-8。
Matlab會(huì)自動(dòng)使用操作系統(tǒng)的默認(rèn)編碼。
由于編碼方式不同,所以出現(xiàn)了亂碼現(xiàn)象。
解決方法
單文件處理
使用Linux命令iconv轉(zhuǎn)換編碼方式。
例如,將test1.m從Windows復(fù)制到Linux中,使用以下命令可以轉(zhuǎn)換編碼方式,解決亂碼問(wèn)題。
# 將test1.m轉(zhuǎn)換成UTF-8 iconv -f GB2312 -t UTF-8 test1.m -o test1.m
假設(shè)將test2.m從Linux復(fù)制到Windows中,使用以下命令可以轉(zhuǎn)換編碼方式,解決亂碼問(wèn)題。
# 將test2.m轉(zhuǎn)換成GB2312 iconv -f UTF-8 -t GB2312 test2.m -o test2.m
批量處理
如果是少量的文件,可以使用iconv逐個(gè)轉(zhuǎn)換,但是如果文件數(shù)量很多,就很麻煩。
為了提高效率,可以使用使用shell腳本批量轉(zhuǎn)換編碼。
腳本內(nèi)容如下所示:
#!/bin/bash # 功能:將GB2312文件 轉(zhuǎn)換成 UTF-8【解決Windows文件復(fù)制到Linux之后亂碼問(wèn)題】 #read -p "Input Path:" SPATH SPATH="." #echo $SPATH POSTFIX="m" param1="$1" if [ "$param1" == "win" ];then sys1="Linux" sys2="Windows" format1="UTF-8" format2="GB2312" elif [ "$param1" == "linux" ];then sys1="Windows" sys2="Linux" format1="GB2312" format2="UTF-8" else echo "************** 功能 ************" echo " 解決matlab腳本文件在Windows和Linux中移動(dòng)時(shí)出現(xiàn)的亂碼問(wèn)題!" echo " 將該腳本復(fù)制到程序文件夾中,運(yùn)行該腳本,它會(huì)對(duì)當(dāng)前文件夾及子文件夾中的所有*.m文件進(jìn)行格式轉(zhuǎn)換,解決亂碼問(wèn)題。" echo " 轉(zhuǎn)換到 Linux 的命令: $0 linux" echo " 轉(zhuǎn)換到 Window的命令: $0 win" exit fi echo "********************************" echo " 格式轉(zhuǎn)換中......" echo " 從"$sys1"("$format1") 轉(zhuǎn)換到 "$sys2"("$format2")" echo "********************************" FILELIST(){ filelist=`ls $SPATH ` for filename in $filelist; do if [ -f $filename ];then #echo File:$filename #echo "${filename#*.}" EXTENSION="${filename#*.}" #echo $EXTENSION if [ "$EXTENSION" == "$POSTFIX" ];then #echo "${filename%%.*}" echo Processing: $filename iconv -f $format1 -t $format2 $filename -o $filename #iconv -f GB2312 -t UTF-8 $filename -o $filename fi elif [ -d $filename ];then cd $filename SPATH=`pwd` #echo $SPATH FILELIST cd .. else echo "$SPATH/$filename is not a common file." fi done } cd $SPATH FILELIST echo "======== Convert Done. ========"
使用方法:
將該腳本放到需要進(jìn)行轉(zhuǎn)換的matlab代碼所在的文件夾中,執(zhí)行該腳本,可以將當(dāng)前目錄及其子目錄中的*.m文件轉(zhuǎn)換成指定編碼格式。
給腳本添加可執(zhí)行權(quán)限。chmod x convertMatlab.sh
從Linxu復(fù)制到Windows中,執(zhí)行命令./convertMatlab.sh win。
從Windows復(fù)制到Linux中,執(zhí)行命令./convertMatlab.sh linux。
腳本到Linux公社資源站下載:
------------------------------------------分割線(xiàn)------------------------------------------
免費(fèi)下載地址在 linux.linuxidc.com/
用戶(hù)名與密碼都是
具體下載目錄在 /2016年資料/11月/24日/Matlab代碼從Windows拷貝到Linux變成亂碼/
下載方法見(jiàn) /Linux/2013-07/87684.htm
相關(guān)標(biāo)簽搜索:Matlab代碼從Windows拷貝到Linux變成亂碼 MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線(xiàn)視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn)