Blackrose's Blog Blackrose's Blog

跨平台开发的坑——换行符

in growth-logread (294) 文章转载请注明来源!

某天早晨七点左右,BOSS打电话来说程序有重大问题,重新编译后,设备上的液晶显示不正常了。液晶是点阵字库来显示的,而且是由另外一块芯片单独驱动显示,所以排除液晶程序问题,应该就在主程序内部有问题。突然发现,窗外面已经下雪了,西北的冬天真是很二。想到我之前一直都是在MAX OSX下开发,所以文件编码已经转换成UTF8了,但字库却还是GBK的。转换后发现还是没有效果,后来查阅GCC编译默认会使用UTF8编码。正在思考时,BOSS说现在添加一行代码,编译后后自动回到上一行,整个代码看起来很乱。电话挂完后,在床上想了半天,抱起MBP打开VIM时,想起在WIN下编写的文本,UNIX/LINUX下用VIM打开结尾会有^M的字符。

换行符,各种系统下对其实现有差异的。尤其是M$家的,使用的是0xd 0xa表示,UNIX/LINUX则基本通一为0xa。问题的源头算是找到了,但是代码是在GIT中管理,那跨平台开发如何保证通一性呢?进而发现GIT也是有坑的。

GitHub 第一坑:换行符自动转换

文章二维码

扫描二维码,在手机上阅读!

发表新评论
已有 2 条评论
  1. 7hao
    7hao
    回复

    CR+LF Windows、DOS、Symbian、Palm ... LF GNU/Linux、Mac OS X、FreeBSD ... CR Mac OS 9(之前)... LF+CR Acom BBC RS QNX 在posix之前 NEL z/OS、i5/OS ... 嘿嘿

    1. Blackrose
      Blackrose本文作者
      回复

      @7hao 你这评论比正文更有内容么

博客已萌萌哒运行
© 2018 由 Typecho 强力驱动.Theme by Yodu
前篇 后篇
雷姆
拉姆