今天给大家代码几个实用的linux上的命令
由于日常工作学习都是在linux系统下进行,但家中为了便于家人应用pc上装的都是window系统,
所以有时难免会把工作带到家中,特别是一些源码(当然公司禁止的源码不会带到家中),在window
系统上编辑过后,在回到linux系统,打开时自己所写的中文注释,或者一些中文文档就会变成乱码(不仅仅中文),
稍微懂点电脑知识的都很容易理解,由于编码方式不同可能会造成此类问题。
有时会出现从ubuntu上拷贝文件到window下,利用window下各种编辑软件进行转码,依然无法解决乱码问题。
最终还是得从ubuntu端下手。
乱码如下:
countCHs=countCHs+1;%ŽØÍ·Êý+1
packets_TO_BS=packets_TO_BS+1;%Ž«Ë͵œ»ùÕŸµÄŒÆÊýÆ÷+1
PACKETS_TO_BS(r+1)=packets_TO_BS;%ÿÂÖŽ«Ë͵œ»ùÕŸµÄŒÆÊýÆ÷=Ž«Ë͵œ»ùÕŸµÄŒÆÊýÆ÷
S(i).type='C';%œÚµãÀàÐÍΪŽØÍ·
S(i).G=100;
C(cluster).xd=S(i).xd;%ŽØÍ·XÖá×ø±ê
C(cluster).yd=S(i).yd;%ŽØÍ·YÖá×ø±ê
plot(S(i).xd,S(i).yd,'k*');%Êä³öœÚµã£¬ÓúÚ*±íÊŸ
distance=sqrt( (S(i).xd-(S(n+1).xd) )^2 + (S(i).yd-(S(n+1).yd) )^2 );%ŒÆËãŸàÀë
C(cluster).distance=distance;%وˑ
C(cluster).id=i;%ŽØÍ·µÄœÚµã±àºÅ
X(cluster)=S(i).xd;%XÖá×ø±ê
Y(cluster)=S(i).yd;%YÖá×ø±ê
cluster=cluster+1;%ŽØÍ·×ÜÊý+1
对于此类问题解决办法不止一种(我只讲linux上简单的编码方式转换的问题):
iconv -f encoding -t encoding inputfile
#比如将一个UTF-8编码的文件转换成GBK编码
iconv -f UTF-8 -t GBK file1 -o file2
#转码后,在Linux上面就不会乱码了
将GBK转换成utf-8
iconv -f GBK -t UTF-8 file1 -o file2
一种编码格式到另外一种格式
iconv 命令在ubuntu help命令下可以查看具体的用法。
参数含义:
-f encoding :把字符从encoding编码开始转换。
-t encoding :把字符转换到encoding编码。
-l :列出已知的编码字符集合
-o file :指定输出文件
-c :忽略输出的非法字符 //重要
-s :禁止警告信息,但不是错误信息
--verbose :显示进度信息
对上述乱码进行转码:
iconv -f GBK -t UTF-8 leachdemo.m -o leachdemo2.m
利用iconv 命令对上述乱码转码之后:
countCHs=countCHs+1;%簇头数+1
packets_TO_BS=packets_TO_BS+1;%传送到基站的计数器+1
PACKETS_TO_BS(r+1)=packets_TO_BS;%每轮传送到基站的计数器=传送到基站的计数器
S(i).type='C';%节点类型为簇头
S(i).G=100;
C(cluster).xd=S(i).xd;%簇头X轴坐标
C(cluster).yd=S(i).yd;%簇头Y轴坐标
plot(S(i).xd,S(i).yd,'k*');%输出节点,用黑*表示
distance=sqrt( (S(i).xd-(S(n+1).xd) )^2 + (S(i).yd-(S(n+1).yd) )^2 );%计算距离
C(cluster).distance=distance;%距离
C(cluster).id=i;%簇头的节点编号
X(cluster)=S(i).xd;%X轴坐标
Y(cluster)=S(i).yd;%Y轴坐标
cluster=cluster+1;%簇头总数+1
有时转码后依然会出现乱码,可以利用iconv的参数-c,忽略掉一些问题,就可以了。
iconv -f GBK -t UTF-8 -c leach.m > leach1.m