Fra*_*cis 2 c++ windows unicode utf-8
我一直在尝试使用C++在BOM和UTF16 LE之间进行转换,以便在Windows上正确输出字符,而无需更改终端的字体.
我尝试更改代码页,但它们不起作用.
我有2个问题,
例如,
wcout << L"\u00A0" << endl;
Run Code Online (Sandbox Code Playgroud)
á当使用代码页850时,此代码在Windows上输出该字母.如何在Windows上将变量替换"\u00A0"为将普通字符串转换为宽字符?
我想要的是这个:
wcout << Lsome_variable << endl;
Run Code Online (Sandbox Code Playgroud)
我意识到这不是有效的c ++语法,但有谁知道我怎么做到这一点?或者,如果有更好的方法?
正如评论中所指出的,标准库现在提供了诸如std :: wstring_convert(以及该页面的See Also部分中的其他函数/类)之类的东西.
由于您使用的是Windows,因此WinAPI还具有转换功能.在这种情况下,您将寻找可用于从UTF-8转换为UTF-16的MultiByteToWideChar.
在这些选项之间,某些东西应该适合您的用例.一般来说,您永远不需要编写自己的转换图.
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |