ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 程序乱码探索

程序乱码探索

原创 Linux操作系统 作者:e71hao 时间:2015-12-08 18:41:54 0 删除 编辑
乱码问题经常遇到,如果要深入理解,必须自己多做实验,如果懂得编程,用C++自己写个程序验证一下,会有更深入的理解。
1.乱码定义:
2.乱码原因:程序代码使用了错误的编码方式读取文件(解码),显示了乱码。
实验(为了加深理解,需要自己动手操作一下,就会有新的体会!!!):
准备二个文件:utf-8.txt,gbk.txt.每个文件都输入  a + 换行+汉 。用win的记事本分别保存为utf-8编码,ansi(在中文操作系统,ansi设置的为gbk编码)编码。然后ultraedit中有个“切换十六进制”看看分别显示什么:



从上面可以得到这样一些信息:字母 a 的十六进制编码是0x61,回车是0x0D,换行是0x0A,文字“汉”的gbk编码为BABA,
utf8的编码为E6B189.可以进入网站http://bianma.supfree.net/,输入汉字即可得,如下图:


再次实验:在ue中用utf8格式读gbk.txt,显示为乱码。同样的,用gbk格式读utf-8.txt,显示为乱码。

这样退出一个结论:ue这个程序使用错误编码方式读文件gbk.txt,显示乱码。这可以解释很多问题,如下:
做另外一个实验:你用xshell连接linux,把gbk.txt,utf-8.txt长传到linux中,设置应用程序xshell的编码,会得到很有趣东西:
如下图:

仔细观察上面的实验输出,同样的文件,同样的命令,同样的应用程序,因为设置终端不同的编码方式,有的正确显示,
有的显示乱码,你会发现什么问题呢?你会想到什么呢?

3.

跨应用程序复制/粘贴文本能保留文本格式的原理是什么?
http://www.zhihu.com/question/34065877?sort=created


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30393770/viewspace-1868558/,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux 时区设置
请登录后发表评论 登录
全部评论

注册时间:2015-08-05

  • 博文量
    102
  • 访问量
    104459