首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows UTF8 to UTF16

Windows UTF8 to UTF16
EN

Stack Overflow用户
提问于 2014-07-20 16:19:17
回答 1查看 2.9K关注 0票数 2

我一直试图在UTF8和UTF16 LE之间转换BOM,使用C++使字符在Windows上正确输出,而不必更改终端的字体。

我试着修改代码页,但是它们没有工作。

我有两个问题,

  1. 如何将普通字符串转换为宽字符串?
  2. 创建一个C++映射,将每个unicode字符映射到Windows代码页中的字符是一个坏主意吗?

例如,

代码语言:javascript
复制
wcout << L"\u00A0" << endl;

当使用代码页850时,此代码在Windows上输出字母á。如何将变量替换为"\u00A0",以便将普通字符串转换为宽字符?

我想要的是:

代码语言:javascript
复制
wcout << Lsome_variable << endl;

我意识到这不是有效的c++语法,但有人知道我如何做到这一点吗?还是有更好的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-20 17:30:52

正如注释中所指出的,标准库现在提供了类似于convert (以及页面中的其他函数/类)之类的功能。

因为您在Windows上,所以WinAPI也有转换函数。在这种情况下,您将寻找MultiByteToWideChar,它可以用于从UTF-8转换到UTF-16。

在这些选项之间,某些东西应该适合您的用例。一般来说,你永远不需要写你自己的转换图。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24852453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档