【问题标题】:Is there anyway to encode with encoding type in C++无论如何在 C++ 中使用编码类型进行编码
【发布时间】:2019-10-25 07:56:19
【问题描述】:

我是 C++ 新手,我现在面临的是我必须将来自用户的输入字符串从这些编码编码为十六进制。 C++ 中是否有任何相关的库或函数可以具有与 Java 中的 Charset 相同的输出?我已经用 Java 实现了。

我需要支持以下编码:

  • US-ASCII 七位 ASCII,又名 ISO646-US,又名 Unicode 字符集的基本拉丁语块
  • ISO-8859-1 ISO 拉丁字母 No. 1,又名 ISO-LATIN-1
  • UTF-8 八位 UCS 转换格式
  • UTF-16BE 十六位 UCS 转换格式,大端字节序
  • UTF-16LE 十六位 UCS 转换格式,小端字节序
  • UTF-16 十六位 UCS 转换格式,字节顺序 由可选的字节顺序标记标识

在Java中我只是简单地使用了

Charset charset = Charset.forName(Enum.valueOf(opentestsystem.otf.model.types.Encodings.class,
            encoding.name()).toString());

【问题讨论】:

  • 欢迎来到 Stack Overflow。请阅读the help pages,获取the SO tour,了解how to ask good questions,以及this question checklist。也请尝试创建您自己的minimal reproducible example 以向我们展示。最后,选择 一种 语言,不要使用不相关的语言标签发送垃圾邮件。
  • en.cppreference.com/w/cpp/string/char_traits -- 如果我理解这个问题对吗?
  • @ChefGladiator 我还不知道,但如果你知道如何在 Java 中使用 Charset,或许你可以帮助我。我研究了很多,但似乎没有任何与 Java 中的 Charset 相同的相关库或函数
  • 最好发布简短但完整的 C++ 代码,显示问题所在..
  • @ChefGladiator 因为我才刚刚开始,所以我还没有任何 C++ 代码。

标签: c++ encoding


【解决方案1】:

您正在寻找libiconv

【讨论】:

  • VSCode 说不能导入#include 。你能帮我解决这个问题吗??
  • 您需要先安装libiconv,然后告诉您的编译器在哪里可以找到头文件(包括路径)并链接到库(链接器标志-liconv)。阅读手册或搜索 StackOverflow 以了解如何操作。
  • @Botje 我们不知道 OP 使用什么平台和编译器。
猜你喜欢
  • 2022-06-12
  • 2016-04-27
  • 1970-01-01
  • 2021-05-18
  • 2019-10-24
  • 1970-01-01
  • 2020-12-02
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多