相关疑难解决方法(0)

将Unicode UTF-8文件读入wstring

如何wstring在Windows平台上读取(UTF-8)文件?

c++ unicode file utf-8 wstring

37
推荐指数
5
解决办法
6万
查看次数

在没有外部库的情况下正确读取utf-16文本文件到字符串中?

我从一开始就一直在使用StackOverflow,并且有时候很想发布问题,但我总是要么自己想出来,要么最终找到答案......直到现在.这感觉就像它应该是相当简单的,但我一直在围绕互联网没有成功小时徘徊,所以我在这里转:

我有一个非常标准的utf-16文本文件,混合了英文和中文字符.我希望这些字符以字符串结尾(技术上是一个wstring).我已经看到很多相关的问题得到解答(这里和其他地方),但是他们要么想要解决在不知道编码的情况下读取任意文件这么难的问题,要么在编码之间进行转换,或者只是对"Unicode"感到困惑. "是一系列编码.我知道我正在尝试阅读的文本文件的来源,它将始终是UTF16,它有一个BOM和一切,它可以保持这种方式.

我一直在使用这里描述的解决方案,它适用于所有英文文本文件,但在遇到某些字符后,它停止读取文件.我发现的唯一其他建议是使用ICU,这可能会起作用,但我真的不想在应用程序中包含一个完整的大型库,只需在一个地方读取一个文本文件.我不关心系统独立性 - 我只需要它在Windows中编译和工作.当然,一个不依赖于这个事实的解决方案会更漂亮,但是对于使用stl同时依赖于关于Windows体系结构的假设,甚至涉及win32函数或ATL的解决方案的解决方案,我也会感到高兴.我只是不想要包括像ICU这样的另一个大型第三方库.除非我想自己重新实现,否则我还是完全没有运气了吗?

编辑:我坚持使用VS2008来完成这个特定的项目,所以C++ 11代码很遗憾无济于事.

编辑2:我意识到我以前借过的代码并没有像我认为的那样在非英文字符上失败.相反,它在我的测试文档中的特定字符失败,其中包括':'(FULLWIDTH COLON,U + FF1A)和')'(FULLWIDTH RIGHT PARENTHESIS,U + FF09).bames53的发布解决方案也大部分都有效,但被这些相同的角色难住了?

编辑3(和答案!):我一直在使用的原始代码-did-主要是工作 - 正如bames53帮助我发现的那样,ifstream只需要以二进制模式打开才能工作.

c++ unicode winapi utf-16

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×2

unicode ×2

file ×1

utf-16 ×1

utf-8 ×1

winapi ×1

wstring ×1