从window拷贝代码到ubuntu(linux)乱码问题解决

今天给大家代码几个实用的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

 

你可能感兴趣的:(linux学习,其他工具,乱码,ubuntu,转码,iconv)