C语言中的中文处理的问题。
2015-11-03 22:54
134 查看
首先Windows下的默认编码是 ANSI,其中中文就是GBK编码。
Linux下中文编码是UTF-8。
换行符的区别。 Windows下是\r\n,Linux下是\n。
其中我在Windows下建立的文本文件,在Linux下加一个换行后,用getchar( )查看,还是增加了一个\r\n。
由此猜测换行符是什么取决于在哪个系统下建立。 但似乎也不太对。。
则比如从UTF-8编码的文本读取汉字,直接输出在Linux下,不会乱码,因为都是UTF-8.
同理,从编码GBK的文件读取,在Windows下也不会乱码。
所以推荐在Windows下保存为GBK,Linux下为没有BOM的UTF-8。
如果汉字直接写在代码里,则汉字的编码就取决于环境,其中vs下为GBK编码,MinGW下为UTF-8编码。
以后了解深入后再补充。
Linux 命令
Linux下中文编码是UTF-8。
换行符的区别。 Windows下是\r\n,Linux下是\n。
其中我在Windows下建立的文本文件,在Linux下加一个换行后,用getchar( )查看,还是增加了一个\r\n。
由此猜测换行符是什么取决于在哪个系统下建立。 但似乎也不太对。。
则比如从UTF-8编码的文本读取汉字,直接输出在Linux下,不会乱码,因为都是UTF-8.
同理,从编码GBK的文件读取,在Windows下也不会乱码。
所以推荐在Windows下保存为GBK,Linux下为没有BOM的UTF-8。
如果汉字直接写在代码里,则汉字的编码就取决于环境,其中vs下为GBK编码,MinGW下为UTF-8编码。
以后了解深入后再补充。
Linux 命令
dos2UNIX file // 把file文件从dos改成UNIX型。 dos为WIN下文件,换行与Linux不同。 UNIX2dos file // 相反。 iconv -f 原本编码 -t 目标编码 filename -o newfile //把filename文件从f变成t编码,新文件保存为newfile eg: iconv -f big5 -t utf8 xx.big5 -o xx.utf8 //
相关文章推荐
- Char, String 和 Byte 等类型间的转换和编码
- 【C语言】【笔试题】【面试题】判断一个字符串是否为另外一个字符串旋转之后的字符串
- 【C语言】【笔试题】【面试题】实现一个函数,可以左旋字符串中的k个字符
- DevExpress VCL for C++BUILDER XE6
- 【C语言】【面试题】每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水
- C++primer学习:模板编成(5):模板实参推断{1}
- c++11特性之initializer_list
- c++11特性之initializer_list
- C++中Txt文件读取和写入(方法汇总)
- C语言实现小游戏(三) 3*3棋盘游戏
- C++重载复合赋值运算符、算术运算符和关系运算符
- 类型转换c++
- 透彻分析C/C++中memset函数
- C语言知识总结(二)基本数据类型与运算
- MeanShift算法C++解析(五)
- [转]程序开发基础学习二(C++ Google Style 命名规则)
- MeanShift算法C++解析(四)
- MeanShift算法C++解析(三)
- MeanShift算法C++解析(二)
- MeanShift算法C++解析(一)