服务器维护系列——Matlab代码从Windows拷贝到Linux变成乱码
2016-11-23 21:04
489 查看
环境
Ubuntu 14.04Matlab 2014b
问题
将matlab代码从Windows中复制到Linux中(或从Linux复制到Windows)时,matlab代码中的中文注释部分变成了乱码。原因
Windows和Linux中的默认编码不同,Windows中默认为GB2312,Linux中默认为UTF-8。Matlab会自动使用操作系统的默认编码。
由于编码方式不同,所以出现了乱码现象。
解决方法
单文件处理
使用Linux命令iconv转换编码方式。
例如,将test1.m从Windows复制到Linux中,使用以下命令可以转换编码方式,解决乱码问题。
# 将test1.m转换成UTF-8 iconv -f GB2312 -t UTF-8 test1.m -o test1.m
假设将test2.m从Linux复制到Windows中,使用以下命令可以转换编码方式,解决乱码问题。
# 将test2.m转换成GB2312 iconv -f UTF-8 -t GB2312 test2.m -o test2.m
批量处理
如果是少量的文件,可以使用iconv逐个转换,但是如果文件数量很多,就很麻烦。
为了提高效率,可以使用使用shell脚本批量转换编码。点此下载脚本
脚本内容如下所示:
#!/bin/bash # 功能:将GB2312文件 转换成 UTF-8【解决Windows文件复制到Linux之后乱码问题】 #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中移动时出现的乱码问题!" echo " 将该脚本复制到程序文件夹中,运行该脚本,它会对当前文件夹及子文件夹中的所有*.m文件进行格式转换,解决乱码问题。" echo " 转换到 Linux 的命令: $0 linux" echo " 转换到 Window的命令: $0 win" exit fi echo "********************************" echo " 格式转换中......" echo " 从"$sys1"("$format1") 转换到 "$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. ========"
使用方法:
将该脚本放到需要进行转换的matlab代码所在的文件夹中,执行该脚本,可以将当前目录及其子目录中的*.m文件转换成指定编码格式。
给脚本添加可执行权限。
chmod +x convertMatlab.sh
从Linxu复制到Windows中,执行命令
./convertMatlab.sh win。
从Windows复制到Linux中,执行命令
./convertMatlab.sh linux。
相关文章推荐
- Matlab代码从Windows拷贝到Linux变成乱码
- Matlab代码从Windows拷贝到Linux变成乱码(亲测有效)
- Matlab代码在Windows与Linux之间拷贝变乱码问题!
- 直接从windows拷贝过来的代码在linux下不能执行
- [小记]将windows下的文件拷贝到多台linux服务器下
- windows本地代码同步到Linux开发服务器的方法
- linux下访问windows ftp服务器出现乱码问题解决方案
- windows下拷贝文件到Linux下出现乱码
- windows本地代码同步到Linux开发服务器的方法
- 从window拷贝代码到ubuntu(linux)乱码问题解决
- windows上代码里中文注释拷贝到liunx下出现乱码的解决方法
- 从Linux系统拷贝的文本文件到windows下出现乱码
- Samba 系列(七):在 Samba AD DC 服务器上创建共享目录并映射到 Windows/Linux 客户
- windows访问linux的WEB服务器乱码解决方案
- 通过ping命令查看服务器是linux还是windows系列
- windows下Qt代码移植到linux下的中文乱码问题解决
- 拷贝网页代码变成乱码问题
- windows 复制代码到linux 文本中文乱码
- windows下全大写的文件,用u盘拷贝到linux的时候,会变成小写。
- [linux入门系列]Windows 到 Linux 之旅: 第 1 部分. Linux 思想