问题标签 [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.

0 投票
14 回答
262717 浏览

unicode - UTF-8、UTF-16 和 UTF-32

UTF-8、UTF-16 和 UTF-32 之间有什么区别?

我知道它们都将存储 Unicode,并且每个都使用不同数量的字节来表示一个字符。选择一个比另一个有优势吗?

0 投票
5 回答
18682 浏览

utf-8 - UTF-16 的意义何在?

我从来没有理解过 UTF-16 编码的意义。如果您需要能够将字符串视为随机访问(即代码点与代码单元相同),那么您需要 UTF-32,因为 UTF-16 仍然是可变长度的。如果您不需要这个,那么与 UTF-8 相比,UTF-16 似乎是对空间的巨大浪费。UTF-16 相对于 UTF-8 和 UTF-32 的优势是什么?为什么 Windows 和 Java 将其用作本机编码?

0 投票
1 回答
723 浏览

c - C中的UTF-32到UTF-8转换器,缓冲区充满了空值/零

我一直在努力让这个工作。该程序应该采用两个参数,一个用于缓冲区大小,另一个用于文件名,并将该文件从 UTF-32 转换为 UTF-8。我一直在使用 fgetc() 函数用 Unicode 代码点填充一个 int 数组。我已经测试 printint 输出缓冲区的内容,并且它具有所有这些空字符而不是每个代码点。

例如,对于仅包含字符“A”的文件:缓冲区 [0] 为 0 缓冲区 [1] 为 0 缓冲区 [2] 为 0 缓冲区 [3] 为 41

U+7F 以上的任何代码点最终都会分开。

这是初始化我的缓冲区的代码:

0 投票
3 回答
16229 浏览

utf-8 - 什么字符编码最适合跨国公司

如果您有一个要翻译成世界上每种语言的网站,因此有一个包含所有这些翻译的数据库,那么哪种字符编码最好?UTF-128?

如果是这样,所有浏览器都理解选择的编码吗?字符编码是直接实现还是存在隐藏因素?

提前致谢。

0 投票
1 回答
470 浏览

visual-c++ - 从文件中读取文本并将其转换为 UTF32

我正在使用 CSFML 1.6 库(它是基于 OpenGL 的多媒体库)。我住在波兰,这里有特殊字符,例如:

现在我有一个包含这些字符的文本文件和 CSFML 提供函数来在显示的字符串上设置 UnicodeText,它的参数是整数数组。

我怎样才能正确地从文件中读取字符,然后将它们传递给这个函数?

任何帮助都非常感谢。

0 投票
2 回答
5539 浏览

c# - 如何在 C# 中使用 32 位 unicode 字符?

也许我不需要 32 位字符串,但我需要表示 32 位字符

http://www.fileformat.info/info/unicode/char/1f4a9/index.htm 现在我抓住了符号字体,当我粘贴它时可以看到字符(在 url 或任何文本区域中)所以我知道我有它的字体支持。

但是我如何在我的 C#/.NET 应用程序中支持它?

-编辑-我会添加一些东西。当我将上述字符粘贴到我的 .NET winform 应用程序中时,我没有正确看到该字符。将其粘贴到 Firefox 中时,我确实正确地看到了它。如何在我的 winform 应用程序中正确查看字符?

0 投票
2 回答
1918 浏览

python - 如何在 Python 中获得可靠的 unicode 字符数?

Google App Engine 使用 Python 2.5.2,显然启用了 UCS4。但 GAE 数据存储在内部使用 UTF-8。因此,如果您将 u'\ud834\udd0c'(长度为 2)存储到数据存储区,当您检索它时,您会得到 '\U0001d10c'(长度为 1)。我试图以一种在存储之前和之后给出相同结果的方式来计算字符串中的 unicode 字符数。因此,在我收到字符串后,我会尝试对其进行规范化(从 u'\ud834\udd0c' 到 '\U0001d10c'),然后再计算其长度并将其放入数据存储区。我知道我可以将其编码为 UTF-8,然后再次解码,但有没有更直接/有效的方法?

0 投票
1 回答
1649 浏览

qt - 在 Qt 中 QTextCodec::codecForName("UTF-16") 和 codecForName("UTF-32") 如何决定使用的字节顺序?

在 Qt 文档中,它声明(除其他外)支持以下 Unicode 字符串编码:

  • UTF-8
  • UTF-16
  • UTF-16BE
  • UTF-16LE
  • UTF-32
  • UTF-32BE
  • UTF-32LE

由于为 2 和 4 字节编码的 Unicode 列出了三种不同的编解码器,我想知道:这两种非字节序编解码器(“UTF-16”和“UTF-32”)如何决定使用哪种字节序?

0 投票
2 回答
826 浏览

c++ - 哪些开源 C 或 C++ 库可以将任意 UTF-32 转换为 NFC?

哪些开源 C 或 C++ 库可以将任意 UTF-32 转换为NFC

到目前为止,我认为可以做到这一点的库:ICU、Qt、GLib(不确定?)。

我不需要任何其他复杂的 Unicode 支持;只是从任意但已知正确的 UTF-32 转换为NFC形式的 UTF-32。

我对可以直接执行此操作的库最感兴趣。例如,Qt 和 ICU(据我所知)都通过与 UTF-16 之间的中间转换阶段完成所有工作。

0 投票
1 回答
5170 浏览

c - 如何将 UTF-16 转换为 UTF-32 并在 C 中打印生成的 wchar_t?

我正在尝试打印出一串 UTF-16 字符。我不久前发布了这个问题,给出的建议是使用 iconv 转换为 UTF-32 并将其打印为 wchar_t 字符串。

我做了一些研究,并设法编写了以下代码:

iconv 调用总是返回 0,所以我猜转换应该没问题?

然而,印刷似乎是偶然的。有时,转换后的 wchar_t 字符串打印正常。其他时候,它似乎在打印 wchar_t 时遇到了问题,并且完全终止了 printf 函数调用,以至于即使是尾随的“***”也不会被打印出来。

我也试过用

但没有任何东西被打印出来。

我在这里错过了什么吗?

参考:如何在 C 中打印 UTF-16 字符?

更新

在评论中纳入了一些建议。

更新代码:

仍然是相同的结果,并不是所有的 UTF-16 字符串都被打印(包括 printf 和 wprintf)。

我还能错过什么?

顺便说一句,我使用的是 Linux,并且已经验证 wchar_t 是 4 个字节。