
我们有一个在windows和linux上运行的程序。 它将二进制std :: wstrings写入一个文件。 我们需要能够读取从linux写入windows的文件。 我们把string写成wchar_t的列表。 在linux上,每个wchar_t占用4个字节。 在windows上,每个wchar_t占用2个字节。
当读取linux写入windows的文件时,如何取得四个字节wchar_t并将其放入2个字节的wchar_t中?
谢谢,亚当
在交叉编译的.so文件中是否有检查符号的工具?
如何在windows上抓住鼠标
如何用phing删除符号链接?
在libpcap编译过程中发生冲突
Qt跨平台的windows和Mac:字体大小
一个windows开发人员如何能够最容易地让他的软件在Wine下工作
介绍如何使用GCC / make for Visual Studio用户
我应该从源代码编译一个库吗?
哪个适合linux? GNU make vs cmake vs codeblocks vs qmake
跨平台的分区pipe理库?
您可以使用UTF8-CPP轻松地将文件从UTF-32转换为UTF-16:
#include <fstream> #include <iterator> #include <utf8.h> int main(int argc,char** argv) { std::ifstream file("source.txt"); std::string intermediate; std::wstring result; utf8::utf32to8(std::istreambuf_iterator<char>(file),std::istreambuf_iterator<char>(),std::back_inserter(intermediate)); utf8::utf8to16(intermediate.begin(),intermediate.end(),std::back_inserter(result)); }
不幸的是,没有utf8::utf32to16 ,虽然也许应该有。
假设linux代码是以UTF-32格式写出来的,那么必须编写一些代码将字符串转换为UTF-16,这是windows上使用的Unicode编码。 wstring不能帮助你。 一旦你已经转换为UTF-16,你可以使用wchar_t在windows上存储一个wstring。
总结以上是内存溢出为你收集整理的如何读取一个在linux中编写的std :: wstring到windows全部内容,希望文章能够帮你解决如何读取一个在linux中编写的std :: wstring到windows所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)