首页
社区
课程
招聘
[求助][求助]iconv,UTF-16转UTF-8换行符总是变成两个?
发表于: 2020-9-24 19:34 3594

[求助][求助]iconv,UTF-16转UTF-8换行符总是变成两个?

2020-9-24 19:34
3594

因为llvm编译只支持UTF-8,一些以前的代码是ANSI的
趁着没啥事顺便写个转换的工具
自动遍历指定目录下及其子目录下所有.h,.cpp等文件,然后判断编码再转为UTF-8
功能基本上都写好了.
测试ANSI转的时候正常
UTF-16LE/BE转UTF8,换行符都会变成两行
图片描述
图片描述
查看了下,发现是换行符从0D0A变成了0D0D0A
图片描述
第一次用iconv,不知道是我转换方式不对,还是iconv库的原因
iconv我没用lib的方式,而是直接提取源码集成到项目中
项目已经打包上传了.

 

吊大的有空帮忙看看啥原因.

 

图片描述
图片描述


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不写中文注释啥事没有
2020-9-24 19:52
0
雪    币: 4200
活跃值: (4178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
fopen  的参数二   加上   "b" 就可以了    "rb"  "wb"
2020-9-24 21:47
1
雪    币: 237
活跃值: (1086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
在ms windows中换行为"\r\n"(#13#10),而在linux/unix中是则是"\n"(#10)。在ms windows中使用fwrite写文件会自动在字符串中的“\n”前插入一个“\r”,这样你写到文件中的数据就比原数据长了。fopen()的时候,用二进制形式打开,fwrite()的时候就不会出问题了
2020-9-24 22:34
2
游客
登录 | 注册 方可回帖
返回
//