V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  jayvien  ›  全部回复第 1 页 / 共 1 页
回复总数  4
@nvioue 再过几年,如果你还在做 Windows 开发的话,你可能会理解我提的这个问题。
另外,utf8everywhere 里也有提到一些这方面的技巧,http://utf8everywhere.org/zh-cn
需要注意的是,虽然 setlocale 设置了 UTF-8 语言环境,_fsopen 仍然不支持 UTF-8 编码的文件路径,因此需要通过 _wfsopen 打开文件。
@lonewolfakela 经过一天的尝试,同意你的猜测,UTF-8 编码的字符串只有多字节系列的函数才能正确处理。原始需求是实现一个日志库,传多参,可以正常处理宽字节( UTF-16LE )和多字节( UTF-8 )的日志参数,并且写出 UTF-8 编码的文件。目前已经改成通过多字节系列的函数来实现了,_vscprintf 、vsprintf_s 、printf_s 、fprintf_s,写出文件的时候要用二进制模式,需要 UTF-8 BOM 头的话要自己写"\xEF\xBB\xBF"。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3123 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 9ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.