编码问题的一点小事
2017-04-16 10:13
225 查看
最近和别人合作写一个C语言demo,他在windows7中文操作系统上使用nodepad++写了一段代码。然后我在centos英文版中使用sublime进行打开发现,所有的中文注释都变成了乱码。然后就想了一下导致乱码的原因。分析如下:
这一次的编码问题不是在纠结utf8,gbk以及unicode的关系(当然关于这方面的内容,我以前也写过一篇博客,在这里做了粗浅的整理),而是思考了一下我们编程时候,所采用的的默认编码方式是什么的问题。
无论你在写什么程序(c语言或者nodejs程序),或者就是简单编辑一下txt文件,你有没有想过这些文件以什么样的形式存储在硬盘上。
程序是由诸多的字符串组成,总是要存储的,无论是存在硬盘中还是内存中,总是要被编排成为0,1串。因此从可读的字符到0和1的过程是怎样转换而来的,这就是编码的范畴。
那么我们的程序默认采用了什么样的编码方式呢。这是与操作系统有关的,因此中文操作系统和英文操作系统一定是存在差异的,事实上以上面的情形为例,在中文的windows7操作系统中,默认采用的编码方式为gbk,然后在centos的英文版中默认的编码方式为utf8(通过locale命令查看)。
因此在windows7中创建C 语言程序,nodepad++会默认的使用gbk编码存储程序(即ANSI),然后我使用sublime进行打开的时候,默认是utf8。因此gbk编码的0,1数据流使用utf8进行解码,就会出现中文乱码。同时sublime并不支持gbk,因此怎么看都是乱码。同理在shell中编辑该文件的时候,也是乱码,因为centos英文系统默认utf8编码。
当然解决办法就是在nodepad++中可以指定其为utf8编码格式存储。
以前为什么很少出现乱码。主要原因是程序基本上都是英文写的,那么主流的编码基本都是兼容ascii码的,即英文字符的编码。也就是说英文的编码在各种编码方式之间基本是一致的。当然在同一个系统中,编码保持一致,也很少出现此问题。当然如果nodejs向C语言传输了一个utf8编码的字符串作为命令行的参数,而实际的C语言采用的却是gbk编码格式,则会导致错误。
本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。
这一次的编码问题不是在纠结utf8,gbk以及unicode的关系(当然关于这方面的内容,我以前也写过一篇博客,在这里做了粗浅的整理),而是思考了一下我们编程时候,所采用的的默认编码方式是什么的问题。
无论你在写什么程序(c语言或者nodejs程序),或者就是简单编辑一下txt文件,你有没有想过这些文件以什么样的形式存储在硬盘上。
程序是由诸多的字符串组成,总是要存储的,无论是存在硬盘中还是内存中,总是要被编排成为0,1串。因此从可读的字符到0和1的过程是怎样转换而来的,这就是编码的范畴。
那么我们的程序默认采用了什么样的编码方式呢。这是与操作系统有关的,因此中文操作系统和英文操作系统一定是存在差异的,事实上以上面的情形为例,在中文的windows7操作系统中,默认采用的编码方式为gbk,然后在centos的英文版中默认的编码方式为utf8(通过locale命令查看)。
因此在windows7中创建C 语言程序,nodepad++会默认的使用gbk编码存储程序(即ANSI),然后我使用sublime进行打开的时候,默认是utf8。因此gbk编码的0,1数据流使用utf8进行解码,就会出现中文乱码。同时sublime并不支持gbk,因此怎么看都是乱码。同理在shell中编辑该文件的时候,也是乱码,因为centos英文系统默认utf8编码。
当然解决办法就是在nodepad++中可以指定其为utf8编码格式存储。
以前为什么很少出现乱码。主要原因是程序基本上都是英文写的,那么主流的编码基本都是兼容ascii码的,即英文字符的编码。也就是说英文的编码在各种编码方式之间基本是一致的。当然在同一个系统中,编码保持一致,也很少出现此问题。当然如果nodejs向C语言传输了一个utf8编码的字符串作为命令行的参数,而实际的C语言采用的却是gbk编码格式,则会导致错误。
本文为CSDN村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。
相关文章推荐
- 编码问题的一点小事
- PHP的一点编码问题
- 关于各种编码问题,汉字处理的一点小总结
- 关于页面编码问题的一点记录
- linux下QT程序与windows程序中文字符串传输编码问题的一点解决,utf8转gbk
- fcitx 关于多语言,不同编码的一点说明;同时也可以用于解决fcitx不能输入问题
- jsp中文编码问题与编码问题的一些资料(转载)
- Struts应用中的参数中文编码问题
- 前几天客户那里遇到了一点问题
- UTF8工程编码问题
- 转载:Java中文问题详解,底层编码解剖
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- JSP/Servlet 中的汉字编码问题
- JSP/Servlet 中的汉字编码问题
- JSP/Servlet 中的汉字编码问题
- MySQL安全问题(匿名用户)的一点心得
- JSP/Servlet 中的汉字编码问题(Inber 收藏)
- [转]JSP/Servlet 中的汉字编码问题
- 被中文编码问题困扰
- 关于编码问题参考http://blog.csdn.net/yolle/