问题标签 [codepoint]

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 回答
1003 浏览

php - 如何在 PHP 中将 UTF16 代理对转换为等效的 HEX 代码点?

我正在制作一个应用程序,当聊天将从 iOS 应用程序发送时,但管理员可以从 PHP 内置的管理面板查看聊天。

从 DB,我会收到这样的聊天消息:

我正在使用可以将 HEX 代码点转换为图像的twemoji库。

详细说一下,

在 php 部分,我有以下代码: -

现在,twemoji 解析 HTML 文档的整个正文以将 Hex 代码点替换为图像。

所以,我需要文本将所有 UTF-16 替换为 HEX 代码点(用于表情符号)。 我怎样才能做到这一点?

0 投票
1 回答
1121 浏览

c++ - C++ Unicode:字节、代码点和字形

所以,我正在构建一种脚本语言,我的目标之一是方便的字符串操作。我在 C++ 中尝试了一些想法。

  • 字符串作为字节序列和返回包含代码点索引的向量的自由函数。
  • 一个包装类,它结合了一个字符串和一个包含索引的向量。

两种想法都有问题,问题是,我应该返回什么。它不能是一个字符,如果它是一个字符串,那将是浪费空间。

我最终围绕一个正好 4 个字节的 char 数组创建了一个包装类:一个在内存中正好有 4 个字节的字符串,不多也不少。

在创建这个类之后,我很想将它包装std::vector在另一个类中并从那里构建,从而制作一个字符串类型的代码点。我不知道这是否是一个好方法,它最终会更方便,但最终会浪费更多空间。

因此,在发布一些代码之前,这里有一个更有条理的想法列表。

  • 我的字符类型不是字节,也不是字素,而是代码点。我把它命名为一个符文,就像 Go 语言中的符文一样。
  • 一个字符串作为一系列分解的符文,从而对 O1 进行索引和切片。
  • 因为 rune 现在是一个类而不是原始类型,所以可以使用检测 unicode 空格的方法对其进行扩展:mysring[0].is_whitespace()
  • 我仍然不知道如何处理字素。

奇怪的事实!我构建 rune 类原型的方式的一个奇怪之处在于它总是以 UTF8 打印。因为我的 rune 不是 int32,而是一个 4 字节的字符串,所以最终会有一些有趣的属性。

我的代码:

错误处理思路:

我不喜欢在 C++ 中使用异常。我的想法是,如果构造函数失败,则将 rune 初始化为 4 '\0',然后显式重载 bool 运算符以在运行的第一个字节恰好是 时返回 false '\0'。简单易用。

那么,想法?意见?不同的方法?

就算我的符文串很多,至少我还有符文类型。小而快复制。:)

0 投票
2 回答
7673 浏览

unicode - 为什么红色心形表情符号需要两个代码点,而其他彩色心形需要一个?

看起来红心表情符号 (❤️) "\u2764\uFE0F" 需要两个 Unicode 代码点,特别是Heavy Black Heart后跟一个Variation Selector。然而,蓝色绿色黄色紫色都有自己的单一代码点。

为什么红色如此不同?

0 投票
1 回答
1113 浏览

java - 如何对包含 4 个字节字符的字符串进行子串化?

我有一个可以包含 4 个字节字符的字符串。例如:

String s = "\uD83D\uDC4D1234\uD83D\uDC4D";

我也有一个大小,我应该用它来从中获取子字符串。大小以字符为单位。所以假设大小为 5,所以我应该得到前 4 个字节的字符以及“1234”。

直接使用子字符串作为s.substring(0, 5)返回第一个字符和“123”的错误结果。

我可以通过这种方式使用代码点设法获得正确的结果:

我敢打赌,应该有一种更好、更有效的代码来实现这一点。

0 投票
0 回答
140 浏览

javascript - 如何从字符串或数值中获取 Javascript 中字符的官方 Unicode 名称?

当我想查找任意代码点的 Unicode 名称时,我在 JavaScript 中有哪些选择?

也许有一些我可以使用的模块,我可以调用的 Web API,或者人们以前已经采用了自己的方式来做到这一点?

它应该适用于所有平面,但不必处理多代码点字符串,例如字形簇。

0 投票
1 回答
1419 浏览

swift - 如何在 Swift 中获取字符/字符串的 unicode 代码点表示?

作为通用解决方案,我们如何在 Swift 中获取字符或字符串的 unicode 代码点?

考虑以下:

如果我没记错的话,所需的函数可能会返回一个字符串数组,例如:

任何更多建议的优雅方法将不胜感激。

0 投票
1 回答
459 浏览

c++ - 从字符的ASCII码点到wstring

使用下面的代码,我可以获取代码点字符的 wstring。如果 codepoint>65535 使用错误的 wstring。必须怎么做?

0 投票
1 回答
35 浏览

javascript - 将代码点集转换为二进制时出现奇怪的字节

1 小时前,我问过Transform patterns of code points in a binary的问题:我需要将集合转换为这样[$a-z]的二进制文件:

[$a-z]UnicodeSet站点获得了类似的集合。它只需要您输入一个模式并生成一个代码点集。

我已经重写了一些简单但不平凡的 UnicodeSet 到二进制集转换器。现在,我没有阅读真正的代码点,而是\u通过启用UnicodeSet 站点上的Escape选项来阅读它们的转义形式。我这样做是因为浏览器希望从返回的集合中删除一些字符。

但是,我自己将模式返回的集合的最终输出在[:age=5.0:]&[[:gc=L:][:gc=Nl:][:gc=Mn:][:gc=Mc:][:gc=Nd:][:gc=Pc:]\$_]我自己将其转换为二进制后看起来有错误的代理项。

药物...

我在输入集中读取和跳过单个代码点的功能是nextCodePoint

有任何想法吗?

0 投票
1 回答
1626 浏览

keyboard - MS 键盘布局创建器中特殊字符的 Unicode 代码点

0 投票
2 回答
1134 浏览

android - 我可以检查一个 Unicode 代码点是否可以在 Android 下显示吗?

我当前的项目使用了许多字体中不存在的一些符号。到目前为止,我已经发现一些 iOS 渲染为一个盒子,所以我期待迟早会找到一个 Android 也无法渲染的东西,尽管到目前为止它在这方面做得比 iOS 更好。

有没有办法以编程方式检查给定的 Unicode 代码点是否会在屏幕上正确显示,而不是作为空方框等?

如果我可以检测到无法渲染的符号,我可以为它实施一种解决方法,而不是显示一个丑陋的框。