问题标签 [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 投票
2 回答
718 浏览

.net - 写一个更好的自然排序(比我的)

我在这里添加了对这个问题的答案:在 C#中排序List<String>,它需要自然的排序顺序,即处理嵌入数字的顺序。

然而,我的实现是幼稚的,代替所有关于应用程序如何通过假设事情(土耳其测试任何人?)来正确处理 Unicode 的帖子,我想我会寻求帮助来编写更好的实现。或者,如果有.NET的内置方法,请告诉我:)

我对该问题的答案的实现只是遍历字符串,逐个字符进行比较,直到在两者中都遇到一个数字。然后它从两个字符串中提取连续的数字,这可能导致长度不同,用前导零填充最短的数字,然后进行比较。

但是,它存在问题。

例如,如果您在字符串 x 中有两个代码点,它们一起构成字符 È,但在另一个字符串中您只有一个代码点,即那个字符。

我的算法会在这些问题上失败,因为它将变音符号代码点视为单个字符,并将其与另一个字符串中的 È 进行比较。

谁能指导我如何正确处理这个问题?我希望支持指定一个CultureInfo对象来处理语言问题,比如在德国比较“ss”和“ß”,以及类似的事情。

我想我需要让我的代码枚举“真实字符”(我不知道这里的真实术语)而不是单个代码点。

什么是正确的方法?

另外,如果“自然”意味着“人类期望它的工作方式”,我会添加以下内容来思考:

  • 日期和时间呢?
  • 浮点值呢?
  • 还有其他被认为是“自然”的序列吗?
    • 这应该延伸到什么程度?(Eeny,meeny,miny,萌)
0 投票
2 回答
3088 浏览

javascript - 使用 Javascript 查找 Unicode 字符名称

当用户输入数字时,我需要找出 Unicode 字符的名称。一个例子是输入 0041 并得到“拉丁大写字母 A”作为结果。

0 投票
3 回答
27769 浏览

unicode - 实际使用中最常见的非 BMP Unicode 字符有哪些?

根据您的经验,到目前为止,哪些 Unicode 字符、代码点、BMP(基本多语言平面)之外的范围最常见?这些是在 UTF-8 中需要 4 个字节或在 UTF-16 中需要代理的那些。

我本来希望答案是名称中使用的中文和日文字符,但不包括在最普遍的 CJK 多字节字符集中,但在我做最多的项目,英文维基词典中,我们发现哥特字母是到目前为止更常见。

更新

我编写了几个软件工具来扫描整个维基百科中的非 BMP 字符,令我惊讶的是,即使在日语维基百科中哥特字母也是最常见的。在中文维基百科中也是如此,但它也有许多汉字被使用了多达 50 或 70 次,包括“”、“”和“”。

0 投票
2 回答
3206 浏览

sql-server - 在 SQL Server nvarchar (UCS-2) 列中存储 C# 字符串 (UTF-16) 的后果是什么?

似乎 SQL Server对字段使用 Unicode UCS-2,一种 2 字节固定长度字符编码。nchar/nvarchar同时,C# 对其字符串使用 Unicode UTF-16编码(注意:有些人不认为 UCS-2 是 Unicode,但它在 Unicode 子集 0-0xFFFF 中编码所有与 UTF-16 相同的代码点,并且作为就 SQL Server 而言,这是与它在字符串方面本机支持的“Unicode”最接近的东西。)

虽然 UCS-2 在基本多语言平面 (BMP) 中编码与 UTF-16 相同的基本代码点,但它不保留 UTF-16 允许代理对的某些位模式。

如果我将 C# 字符串写入 SQL Server nvarchar(UCS-2) 字段并将其读回,这是否总是返回相同的结果?

似乎 UTF-16 是 UCS-2 的超集,因为 UTF-16 编码更多的代码点(例如高于 0xFFFF),但它实际上是 2 字节级别的 UCS-2 的子集,因为它是更严格。

为了回答我自己的问题,我怀疑如果我的 C# 字符串包含高于 0xFFFF 的代码点(由字符对表示),这些将在数据库中很好地存储和检索,但如果我试图在数据库中操作它们(例如也许调用 TOUPPER 或尝试清除所有其他字符),然后我可能会在稍后显示字符串时遇到一些问题......除非 SQL Server 具有确认代理对并将nchar/nvarchar字符串有效地视为 UTF-16 的函数。

0 投票
2 回答
3654 浏览

java - java字符串unicode代码点转换为字符

好的,所以我觉得这个问题被问了很多次,但我找不到答案。我正在比较由两个不同程序生成的两个不同文件。当然,这两个程序都从相同的数据库查询生成文件。我遇到以下差异:

s1 =Samsung - Mobile USB Chargers

对比

s2 =Samsung \u2013 Mobile USB Chargers

如何将 s2 转换为 s1 甚至更好,如何比较两者而不产生差异?在广泛的互联网上某处提到使用 ApacheCommons-lang 的StringUtils类,但我找不到任何有用的东西。

0 投票
4 回答
8015 浏览

java - Java unicode 在哪里可以找到示例 N 字节 unicode 字符

我正在寻找示例 1 字节、2 字节、3 字节、4 字节、5 字节和 6 字节 unicode 字符。任何指向所有不同 unicode 字符的某种引用的链接以及它们有多大(按字节)将不胜感激。我希望这个参考也有像\uXXXXX.

0 投票
1 回答
3641 浏览

java - 如何将Unicode十六进制“0x20000”的字符串表示形式转换为Java中的int代码点0x20000

我有一个 unicode 十六进制值的字符串表示形式列表,例如“0x20000”()和“0x00F8”(ø),我需要获取其 int 代码点,以便可以使用以下函数:char[] chars = Character .toChars(0x20000);

这应该涵盖 BMP 以及补充字符。我找不到任何方法来做到这一点,所以很高兴得到一些帮助。

0 投票
3 回答
2057 浏览

qt - 从 QChar 检索 Unicode 代码点 > U+FFFF

我有一个应该处理各种字符的应用程序,并在某些时候显示有关它们的信息。我在 QChar、QString 等中使用 Qt 及其固有的 Unicode 支持。

现在我需要 QChar 的代码点才能在http://unicode.org/Public/UNIDATA/UnicodeData.txt中查找一些数据,但是 QChar 的 unicode() 方法只返回一个 ushort(无符号短),通常是一个从 0 到 65535(或 0xFFFF)的数字。有代码点 > 0xFFFF 的字符,那么我该如何获取这些字符呢?是否有一些我遗漏的技巧或者 Qt/QChar 目前不支持?

0 投票
3 回答
28998 浏览

python - 在python中从十六进制字符转换为Unicode字符

十六进制字符串'\xd3'也可以表示为:Ó.

我发现将十六进制字符串的字符表示到控制台的最简单方法是:

或者用英语,将十六进制字符串转换为数字,然后将该数字转换为 unicode 代码点,最后将其输出到屏幕上。这似乎是一个额外的步骤。有没有更简单的方法?

0 投票
2 回答
5803 浏览

unicode - 什么是超长形式/编码?

阅读有关 UTF-8 的 Wikipedia 文章,我一直想知道overlong一词。这个术语被多次使用,但文章没有为其含义提供定义或参考。

我想知道是否有人可以解释该术语及其用途。