问题标签 [char32-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.
c++ - C++0x 中的新 unicode 字符
我正在构建一个 API,它允许我获取各种编码的字符串,包括 utf8、utf16、utf32 和 wchar_t(根据操作系统可能是 utf32 或 utf16)。
新的 C++ 标准引入了新类型
char16_t
,并且char32_t
没有这种大小的歧义,应该在将来使用,所以我也想支持它们,但问题是,它们是否会干扰正常uint16_t
的 ,uint32_t
,wchar_t
类型不允许重载,因为它们可能指的是同一类型?所以我可以写:
/li>std::basic_string<char16_t>
今天的typedef 是什么std::basic_string<char32_t>
:我找不到任何参考。
编辑:根据 gcc-4.4 的标题,介绍了这些新类型:
我只是想确保这是实际的标准要求,而不是 gcc-ism。
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 位的架构上)?
c++ - 在 I/O 中使用 char16_t 和 char32_t
C++11 引入char16_t
并char32_t
促进使用 UTF-16 和 UTF-32 编码的文本字符串。但是该<iostream>
库仍然只支持wchar_t
为多字节 I/O 定义的实现。
为什么支持char16_t
而char32_t
不是添加到<iostream>
库中以补充wchar_t
支持?
c++ - 裸 char32_t 是签名的还是未签名的?
同样,裸char16_t
签名还是未签名?是否定义了实现?
c++ - C++:charX_t 类型的固定大小整数实现
我知道在 C++11 中引入了新的字符类型。但是,由于 C++11 并非在所有地方都可用,因此可能有必要向希望使用 UTF-16 和 UTF-32 的每个人介绍char16_t
和介绍。char32_t
我试图实现这样的类型。这是使用 g++ 和 clang++ 编译的工作实现的基本变体。为简单起见,我将 typedef 用于uint8_t
,但它也适用于其他类型。
它打印的正是我所期望的:
由于它可能不是明确定义的行为,我想问:是否可以在不同的编译器上实现这种可移植的功能?我希望能够在函数uint16_t
和mychar16_t
类型中重载。
非常感谢!
compiler-errors - Xcode 6 beta 5:将部署目标更改为 7.0 时出现“使用未声明的标识符 'char32_t'”的编译错误
我在当前项目中同时使用了 OC 和 Swift。混合代码在 Xcode 6 beta 中运行良好。目前,当我将 Xcode 6 beta 更新到 beta 5 时,我遇到了很多编译错误,其中大部分是由 Swift 语言本身的新特性引起的。我修复了所有与语法相关的错误,剩下一个编译错误是:
“Swift 在 7.0 之前的 iOS 上不可用;请将 IPHONEOS_DEPLOYMENT_TARGET 设置为 7.0 或更高版本(当前为 '4.3')”
当我将部署目标更改为 7.0 并编译项目时,出现了新的编译错误:
“使用未声明的标识符‘char32_t’”
此编译错误出现在文件 /Applications/Xcode6-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 中。
c++11 - 如何将 std::string 转换为 std::u32string?
是否有一种简单的 STL 方法可以将 std::string 转换为 std::u32string,即将 char 的 basic_string 转换为 char32_t?
这不是 Unicode 问题。
c - 有什么方法可以在 ANSI c 中创建大小为 32 的字符?
我知道 C++11 有一个 4 字节的 char32_t 类型,我想知道是否可以在 C 中实现类似的东西。我正在编写的程序需要所有 char 数组都是 4 字节的倍数。
c++ - 带有 char16_t 或 char32_t 的 Visual Studio C++ 2015 std::codecvt
这段代码在VS2013下编译OK:
现在使用 VS2015 我得到: