linux字符乱码怎么解决,Linux乱码
原标题:网上复制代码要小心,可能会带入乱码。
作者:codexia文章来源:C科技网
原始链接:
http://www.cjjjs.com/paper/xmkf/201781595304.html
现在网上有很多共享代码。有了现成的代码,我们一般直接把代码复制到本地,然后开始编译运行。但是复制代码真的安全吗?
有些编译器做的比较好,兼容性强,可以过滤很多异常字符。但是有些编译器比较弱,遇到异常字符可能会直接报错。所以表面写的代码好的话,复制过来就没法编译了。问题在于代码中隐藏的乱码。
隐藏乱码研究请仔细阅读《Windows、Linux文件互用的乱码问题深入研究及彻底解决乱码问题》。本文详细介绍了隐藏乱码形成的原因和解决方法,即不要直接删除乱码文件中的字符。
但是隐藏的乱码来源不仅仅是直接删除字符造成的。而直接删除有乱码的文件的字符,留下了一些字符代码,由于其他代码无法表达,成为隐藏的乱码。不管转换成什么代码都不正常。删除有乱码的文件所产生的隐藏乱码是乱码的原始来源。然而,这些乱码很容易在网络上传播。因为这些乱码本身就是一个字符码,只是没有对应的字符。所以在文本中是可以携带的,一般是以类空格字符的形式出现,但不是真正的空格,只是不能显示,一般显示为空格或问号。
我们来看一个真实的例子:我们从《libuv服务器端包装类源代码分享》号文章分享的代码中复制,然后看看复制出来的代码是什么样子的。在记事本中看起来是这样的:
我们设置了记事本显示所有字符,这里看到的空格并不是真正的空格,只是无法对应乱码而已。我们再来看看UE:
同样,我们也显示所有字符,您仍然可以在这里看到不是空格字符的空格。记事本和UE都为不支持的字符显示空格。那我们就把编辑器改成Linux的vim编辑器吧。结果如下:
在天上!vim编辑器用问号表示不支持的字符,而不是直接将它们显示为不是空格的空格。这些不可表示的字符在某些编译器中可能会表现异常。但是,我提供的代码是从网上复制的,然后修改分享。殊不知,这个过程一直都在承载着载体隐藏的乱码。因为VS之类的编译器功能强大,可以处理这些乱码,python之类的解释器不行,会报错编码。
所以,现在你应该知道为什么在网上复制代码的时候总会出现一些莫名其妙的错误了。当然VS也有不能处理的字符,也会提供编码有问题的文件。
知道了问题,就来解决吧。在前面提到的文章中,我们避免创建这种隐藏的乱码。我们如何避免在交流中被乱码抓住?也就是如何安全的复制代码?
我们可以使用记事本或UE软件来设置视图菜单中所有字符的显示。如果代码中有中文,那么新创建的文件将被设置为UTF-8格式。然后将代码复制并粘贴到新创建的文件中。此时,您可以简单地观察到,如果字符仍然显示为空格,则通过搜索和替换来将其替换为空格。在以这种方式被替换后,一些最初看到的空间相互替换显示。记事本用点代替显示空格,UE用下划线代替显示空格。这样,处理后的代码在编译器中编译时就不会出现奇怪的问题。
建议你养成这样的习惯,避免传播这种乱码。抄的人麻烦会少一些。养成习惯后,也可以避免很多不必要的问题。返回搜狐查看更多。
责任编辑: