问题标签 [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.
.net - 写一个更好的自然排序(比我的)
我在这里添加了对这个问题的答案:在 C#中排序List<String>
,它需要自然的排序顺序,即处理嵌入数字的顺序。
然而,我的实现是幼稚的,代替所有关于应用程序如何通过假设事情(土耳其测试任何人?)来正确处理 Unicode 的帖子,我想我会寻求帮助来编写更好的实现。或者,如果有.NET的内置方法,请告诉我:)
我对该问题的答案的实现只是遍历字符串,逐个字符进行比较,直到在两者中都遇到一个数字。然后它从两个字符串中提取连续的数字,这可能导致长度不同,用前导零填充最短的数字,然后进行比较。
但是,它存在问题。
例如,如果您在字符串 x 中有两个代码点,它们一起构成字符 È,但在另一个字符串中您只有一个代码点,即那个字符。
我的算法会在这些问题上失败,因为它将变音符号代码点视为单个字符,并将其与另一个字符串中的 È 进行比较。
谁能指导我如何正确处理这个问题?我希望支持指定一个CultureInfo
对象来处理语言问题,比如在德国比较“ss”和“ß”,以及类似的事情。
我想我需要让我的代码枚举“真实字符”(我不知道这里的真实术语)而不是单个代码点。
什么是正确的方法?
另外,如果“自然”意味着“人类期望它的工作方式”,我会添加以下内容来思考:
- 日期和时间呢?
- 浮点值呢?
- 还有其他被认为是“自然”的序列吗?
- 这应该延伸到什么程度?(Eeny,meeny,miny,萌)
javascript - 使用 Javascript 查找 Unicode 字符名称
当用户输入数字时,我需要找出 Unicode 字符的名称。一个例子是输入 0041 并得到“拉丁大写字母 A”作为结果。
unicode - 实际使用中最常见的非 BMP Unicode 字符有哪些?
根据您的经验,到目前为止,哪些 Unicode 字符、代码点、BMP(基本多语言平面)之外的范围最常见?这些是在 UTF-8 中需要 4 个字节或在 UTF-16 中需要代理的那些。
我本来希望答案是名称中使用的中文和日文字符,但不包括在最普遍的 CJK 多字节字符集中,但在我做最多的项目,英文维基词典中,我们发现哥特字母是到目前为止更常见。
更新
我编写了几个软件工具来扫描整个维基百科中的非 BMP 字符,令我惊讶的是,即使在日语维基百科中哥特字母也是最常见的。在中文维基百科中也是如此,但它也有许多汉字被使用了多达 50 或 70 次,包括“”、“”和“”。
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 的函数。
java - java字符串unicode代码点转换为字符
好的,所以我觉得这个问题被问了很多次,但我找不到答案。我正在比较由两个不同程序生成的两个不同文件。当然,这两个程序都从相同的数据库查询生成文件。我遇到以下差异:
s1 =
Samsung - Mobile USB Chargers
对比
s2 =
Samsung \u2013 Mobile USB Chargers
如何将 s2 转换为 s1 甚至更好,如何比较两者而不产生差异?在广泛的互联网上某处提到使用 ApacheCommons-lang 的StringUtils类,但我找不到任何有用的东西。
java - Java unicode 在哪里可以找到示例 N 字节 unicode 字符
我正在寻找示例 1 字节、2 字节、3 字节、4 字节、5 字节和 6 字节 unicode 字符。任何指向所有不同 unicode 字符的某种引用的链接以及它们有多大(按字节)将不胜感激。我希望这个参考也有像\uXXXXX
.
java - 如何将Unicode十六进制“0x20000”的字符串表示形式转换为Java中的int代码点0x20000
我有一个 unicode 十六进制值的字符串表示形式列表,例如“0x20000”()和“0x00F8”(ø),我需要获取其 int 代码点,以便可以使用以下函数:char[] chars = Character .toChars(0x20000);
这应该涵盖 BMP 以及补充字符。我找不到任何方法来做到这一点,所以很高兴得到一些帮助。
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 目前不支持?
python - 在python中从十六进制字符转换为Unicode字符
十六进制字符串'\xd3'
也可以表示为:Ó
.
我发现将十六进制字符串的字符表示到控制台的最简单方法是:
或者用英语,将十六进制字符串转换为数字,然后将该数字转换为 unicode 代码点,最后将其输出到屏幕上。这似乎是一个额外的步骤。有没有更简单的方法?
unicode - 什么是超长形式/编码?
阅读有关 UTF-8 的 Wikipedia 文章,我一直想知道overlong一词。这个术语被多次使用,但文章没有为其含义提供定义或参考。
我想知道是否有人可以解释该术语及其用途。