【问题标题】:how to insert extended ascii characters in string? [duplicate]如何在字符串中插入扩展的 ascii 字符? [复制]
【发布时间】:2014-02-08 10:07:59
【问题描述】:

我正在用 C++ 制作拉丁语-克罗地亚语翻译器。我的问题是我无法打印带有 'š'、'č'、'đ' 等字符的字符串,这些字符存在于克罗地亚语中。那么有没有一种方法可以在字符串中输入扩展的 ascii 字符,然后在屏幕上输出它们而不使用像这样的解决方案: cout

【问题讨论】:

  • 您可能需要使用不同的代码页。出于您的目的,可能使用 unicode 会比 ASCII 更好。
  • 如果你的系统使用的是utf8:std::cout

标签: c++ string ascii


【解决方案1】:

首先,您应该清楚源代码编码,围绕 SO 进行了一些讨论(例如 this one)。

如果您在 C++11 环境中,则可以使用 char16_tchar32_t,它们分别被授予处理 16 位和 32 位长的字符(查看 here)。因此,如果您确定所有字符都可以以 16 位 (UTF16) 处理,则 char16_t 可以作为替代方案。 AFAIK,wchar_t 未被授权处理 2 个字节(至少在 VS 2005/2008 中是这样)。

要处理UTF-8,我坚信最好的选择是使用codecvt

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多