问题标签 [surrogate-pairs]

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 投票
7 回答
4390 浏览

unicode - 如果我们有代理对,为什么要使用 UTF-32 而不是 UTF-16?

如果我理解正确的话,UTF-32 可以处理宇宙中的每一个字符。通过使用代理对,UTF-16 也可以。那么使用 UTF-32 而不是 UTF-16 有什么好的理由吗?

0 投票
2 回答
9372 浏览

java - 处理 Java 字符串中的 Unicode 代理值

考虑以下代码:

得到以下不正确的输出:

但是,如果将0xd9输入数据中的 更改为0x9d,则得到以下正确输出:

我意识到这个功能是因为字节0xd9是一个高代理 Unicode 标记。

问题:有没有办法在 Java Unicode 字符串中提供、识别和提取代理字节( 0xd800to )? 谢谢0xdfff

0 投票
4 回答
12062 浏览

java - Java 无法打开文件名中具有代理 Unicode 值的文件?

我正在处理对文件执行各种 IO 操作的代码,并且我想让它能够处理国际文件名。我在使用 Java 1.5 的 Mac 上工作,如果文件名包含需要代理的 Unicode 字符,则 JVM 似乎无法找到该文件。例如,我的测试文件是:

"草鷗外.gif"它被分解成 Java 字符\u8349\uD85B\uDFF6\u9DD7\u5916.gif

如果我从这个文件名创建一个文件,我无法打开它,因为我得到一个 FileNotFound 异常。即使在包含该文件的文件夹上使用它也会失败:

我实际处理的大部分代码都是以下形式:

有什么方法可以解决这个问题,要么转义文件名,要么以不同的方式打开文件?

0 投票
1 回答
1085 浏览

php - Unicode 代理对

假设我有一对代理。例如:

有没有可以用来将字符打印到屏幕上的功能?

0 投票
2 回答
4384 浏览

php - 输出 UTF-16?有点卡住

我有一些 UTF-16 编码字符的代理对形式。我想将这些代理对输出为屏幕上的字符。

有谁知道这怎么可能?

0 投票
5 回答
12394 浏览

javascript - BMP 之外的 JavaScript 字符串

BMP 是基本多语言平面

根据JavaScript: The Good Parts

JavaScript 是在 Unicode 是 16 位字符集的时候构建的,因此 JavaScript 中的所有字符都是 16 位宽。

这让我相信 JavaScript 使用 UCS-2(不是 UTF-16!)并且只能处理 U+FFFF 以内的字符。

进一步的调查证实了这一点:

fromCharCode方法在返回 Unicode 字符时似乎只使用最低 16 位。尝试获取 U+20001(CJK 统一表意文字 20001)会返回 U+0001。

问题:是否可以在 JavaScript 中处理后 BMP 字符?


2011-07-31:从Unicode Support Shootout: The Good, The Bad, & the (mostly) Ugly 中的第12 张幻灯片很好地涵盖了与此相关的问题:

0 投票
3 回答
308 浏览

unicode - Unicode 中是否存在每个“字符”只是一个代码点的编码?

尝试重新表述:您能否将每个组合字符组合映射到一个代码点?

我是 Unicode 新手,但在我看来,没有编码、规范化或表示形式,在 Unicode 的每种情况下,一个字符都是一个代码点。这个对吗?

基本多语言平面也是如此吗?

0 投票
3 回答
27769 浏览

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

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

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

更新

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

0 投票
7 回答
73614 浏览

java - 什么是 Java 中的“代理对”?

我正在阅读文档StringBuffer,特别是reverse()方法。该文档提到了一些关于代理对的内容。在这种情况下,什么是代理对?什么是代理和代理?

0 投票
3 回答
10270 浏览

.net - 如何在 Postgres 数据库中存储 UTF-16 字符?

我正在尝试将一些文本(例如č)存储在 Postgres 数据库中,但是在检索此值时,它在屏幕上显示为?. 我不确定为什么会这样,我的印象是它是 UTF-8 不支持的字符,但在 UTF-8 中,但是,从第一个答案来看,这是一个不正确的假设.

原始问题(可能仍然有效):

我已经阅读了有关 UTF-8 代理对的信息,它可以满足我的要求,并且我已经看到了一些涉及stringinfo object的示例TextElementEnumerators,但我无法制定出实用的概念证明。

有人可以提供一个示例,说明您如何将 UTF-16(可能使用此代理对概念)写入和读取到 postgres 数据库。谢谢你。

更新的问题:为什么č字符会作为问号从数据库中返回?

我们使用 NPGSQL 来访问数据库和 VB.Net。