问题标签 [char16-t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5780 浏览

c++ - C++0x 中的新 unicode 字符

我正在构建一个 API,它允许我获取各种编码的字符串,包括 utf8、utf16、utf32 和 wchar_t(根据操作系统可能是 utf32 或 utf16)。

  1. 新的 C++ 标准引入了新类型char16_t,并且char32_t没有这种大小的歧义,应该在将来使用,所以我也想支持它们,但问题是,它们是否会干扰正常uint16_t的 , uint32_t,wchar_t类型不允许重载,因为它们可能指的是同一类型?

    所以我可以写:

    /li>
  2. std::basic_string<char16_t>今天的typedef 是什么std::basic_string<char32_t>

    我找不到任何参考。

    编辑:根据 gcc-4.4 的标题,介绍了这些新类型:

    我只是想确保这是实际的标准要求,而不是 gcc-ism。

0 投票
1 回答
8784 浏览

printing - char16_t 打印

wchar_t最近,由于这些平台之间的大小差异,我在将 Windows 应用程序移植到 Linux 时遇到了问题。我尝试使用编译器开关,但打印这些字符时出现问题(我认为 GCCwcout认为所有字符wchar_t都是 32 位的)。

所以,我的问题是:有什么好方法(w)cout char16_t吗?我问是因为它不起作用,我被迫将其转换为wchar_t

这似乎不是一个大问题,但它困扰着我。

0 投票
3 回答
3622 浏览

c++11 - C++11 char16_t strlen 等效函数

我有一个简单的问题:有没有办法在以零结尾的数组中进行类似strlen()的字符计数?char16_t

0 投票
1 回答
1317 浏览

c++11 - 用 char16_t 数组向上

有什么办法可以做得很好。当我尝试使用 Boost'sto_upper()时,我得到一个std::bad_cast,所以我以这样的方式结束:

我什至不确定这是否正确,因为我不知道是否可以保证to_upperofchar16_t与原始字符具有相同的大小。而且我不确定这是否会导致下一个字符被覆盖或再次读取最后一个进动的后半部分。很抱歉我的愚蠢问题,但是当涉及到具有可变长度编码的随机访问和 char 类型时,我遇到了问题。

0 投票
3 回答
2226 浏览

c++ - C++ char16_t 的大小取决于什么?

这也与char32_t任何intXX_t. 该规范指出:

2.14.3.2

包含单个 c-char 的 char16_t 文字的值等于其 ISO 10646 代码点值,前提是该代码点可以用单个 16 位代码单元表示。

5.3.3.1

[..] 特别是 [..] sizeof(char16_t)、sizeof(char32_t) 和 sizeof(wchar_t) 是实现定义的

intXX_t除了它们是“可选”(18.4.1)的评论之外,我看不到有关这些类型的任何信息。

如果 a 不char16_t保证是 2 个字节,它是否保证是 16 位(即使在 1 字节!= 8 位的架构上)?

0 投票
1 回答
9558 浏览

c++ - 在 I/O 中使用 char16_t 和 char32_t

C++11 引入char16_tchar32_t促进使用 UTF-16 和 UTF-32 编码的文本字符串。但是该<iostream>库仍然只支持wchar_t为多字节 I/O 定义的实现。

为什么支持char16_tchar32_t不是添加到<iostream>库中以补充wchar_t支持?

0 投票
1 回答
1800 浏览

c++ - Clang 错误,没有可行的转换

我遇到了clang 3.1的问题。GCC 4.2 不会出现此特定问题。以下是发生的错误的示例:

错误消息指出:

代码使用编译器标志 -fshort-wchar 编译,它应该将 wchar_t 转换为 16 位无符号短整型。我正在 XCode v4.3.2 上编译代码。

0 投票
0 回答
302 浏览

boost - 提振精神和 char16_t / UTF-16 支持?

今天或不久的将来,是否有任何支持 char16_t / UTF-16 的增强精神?

我确实尝试了使用 char16_t 的字数统计词法分析器示例,但遇到了各种编译错误。

谢谢,

亨利·罗兰

0 投票
1 回答
2313 浏览

c++ - C++11 char16_t strstr 和 sprintf 等效

char16_t 类型是否有与 strstr 和 sprintf 等效的函数?

另外,我在哪里可以找到 char16_t 的剩余功能?

0 投票
0 回答
85 浏览

c++ - C++:charX_t 类型的固定大小整数实现

我知道在 C++11 中引入了新的字符类型。但是,由于 C++11 并非在所有地方都可用,因此可能有必要向希望使用 UTF-16 和 UTF-32 的每个人介绍char16_t和介绍。char32_t我试图实现这样的类型。这是使用 g++ 和 clang++ 编译的工作实现的基本变体。为简单起见,我将 typedef 用于uint8_t,但它也适用于其他类型。

它打印的正是我所期望的:

由于它可能不是明确定义的行为,我想问:是否可以在不同的编译器上实现这种可移植的功能?我希望能够在函数uint16_tmychar16_t类型中重载。

非常感谢!