问题标签 [utf-32]
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++ - 如何使用 std:ifstreambuf_iterator 修复错误?
我有这个简单的代码,它必须从文件中迭代四个字节并将其传递给函数 utf8::utf32to8,它将文件从 utf32 编码转换为 utf8:
但是当我编译我得到这个错误:
请帮助我成功编译此代码。
c++ - C++ 读写 UTF-32 文件
我想使用 Visual Studio 2017、C++ 和 WindowsAPI(以前称为 Win32)为自己编写一个语言学习应用程序。操作系统是最新的 Windows 10 内部版本,向后兼容性不是问题。由于我假设英语是用户的母语,而我目前感兴趣的语言是另一种欧洲语言,ASCII 可能就足够了。但我想对它进行未来验证(更多异国情调的语言),我也想尝试使用 UTF-32。我以前使用过 UTF-8 和 UTF-16,虽然我对后者有更多的经验。
感谢std::basic_string
,很容易弄清楚如何获取 UTF-32 字符串:
由于我为所有 GUI 人员使用 WinAPI,我需要在 UTF-32 和 UTF-16 之间进行一些转换。
现在我的问题是:由于 UTF-32 效率低下而没有被广泛使用,因此网络上几乎没有任何关于它的资料。为了避免不必要的转换,我想将我的词汇表和其他数据保存为 UTF-32(对于所有 UTF-8 倡导者/传播者,替代方案是 UTF-16)。问题是,我找不到如何以 UTF-32 编写和打开文件。
所以我的问题是:如何用 UTF-32 编写/打开文件?我希望不需要第三方库,除非它们是 Windows 的一部分或通常随该操作系统一起提供。
c - 是否可以在 C 中制作紧凑的 Unicode 兼容 strtoupper()/strtolower() 函数?
我一直在研究将 Latin-1 兼容(使用unsigned char
)C 应用程序转换为 Unicode 兼容的库。
ICU 项目似乎是最有前途的,但它也是一个庞大的库并且难以集成/构建(特别是考虑到它需要为 iOS、Android、Windows、WASM 和 Linux 编译)。
我真的只需要固定长度的编码和转换大小写的能力 - 是否可以只使用 UTF-32 字符串(存储为int[]
)和两个 UTF-32 兼容strtoupper()
/strtolower()
函数来做到这一点,或者有什么东西阻止我这样做(例如连字或组合字符)?
我的计划是制作一个大写/小写映射的静态列表并将其用作查找表(或者更确切地说,合并相同“类型”的字符范围以节省空间)。
java - 如何显示此字符的 UTF-32 编码?
我正在尝试显示这个角色:
显然,我知道我可以简单地通过使用来显示它,"\uD83C\uDCA1"
但我正在创建一副牌,如果没有对所有 52 张牌进行非常长时间的比较,几乎不可能使用这种格式显示 2-Ace。这就是我尝试对这个字符使用 UTF-32 编码的原因,0x0001F0A1
或者1f0a1
因为下一张卡只是0x0001F0A2
or 1f0a2
。我尝试过使用Integer.parse()
,Character.decode()
但都没有为我获得实际的字形。
编辑:只是一个小提示,我在 JOptionPane 中显示它,我意识到这不相关,所以我设置了字体,使其更大,用户实际上可以看到它......
utf-16 - UTF16 到 UTF32 的转换 - 代理对无效
在将 UTF16 数组转换为 UTF32 时,如果我遇到一个高代理项并且下一个值既不是高代理项也不是低代理项,我们是否应该使 UTF16 数组中的两个值都无效?或者
我们是否应该仅使高代理无效并继续转换下一个值?
参考:https ://unicodebook.readthedocs.io/unicode_encodings.html#surrogates
谢谢。
c++11 - 如何使用 wstring_convert 在 utf16 和 utf32 之间进行转换?
当你要从std::u16string
to 时,可以说std::u32string
,std::wstring_convert
不能按预期工作chars
。那么如何使用作为输入std::wstring_convert
在 UTF-16 和 UTF-32 之间进行转换呢?std::u16string
例如 :
reinterpret_cast
可以吗char
,正如我在几个例子中看到的那样?
如果您确实需要reinterpret_cast
,我已经看到了一些使用字符串大小而不是指针总字节大小的示例。这是错误还是要求?
我知道codecvt
已弃用,但在标准提供替代方案之前,它必须这样做。
c++ - 在 C++17 / C++20 中从 wstring 转换为 u16string 并返回(标准符合)
我的主要平台是 Windows,这就是我在内部使用 UTF-16(主要是 BMP 字符串)的原因。我想为这些字符串使用控制台输出。
不幸的是,没有std::u16cout
或std::u8cout
所以我需要使用std::wcout
. 因此,我必须将我的 u16strings 转换为 wstrings - 最好(也是最简单)的方法是什么?
在 Windows 上,我知道 wstring 指向 UTF16 数据,所以我可以创建一个简单的 std::u16string_view ,它使用相同的数据(无转换)。但是在 Linux 上 wstring 通常是 UTF32 ......有没有办法在没有宏和假设 sizeof(wchar_t) == 2 => utf16 的情况下做到这一点?
php - 如何检测字符串是否包含 PHP 中的任何补充字符?
据我所知,补充字符(或“代理对”)在第一个字符的范围内定义,第二个字符的范围0xd800
为0xdbff
从0xdc00
和0xdfff
。
所以我试图检测任意字符串是否包含任何此类字符:
但这似乎并没有发现它们。例如:
返回false
。
所以为了测试它,我写了一个小网页来看看这些符号变成了什么代码:
但我得到的编码不是我所期望的:
为什么要给我f0, 9f, 98, 8d
呢?那些不属于上述定义。那么我在这里做错了什么?