问题标签 [astral-plane]
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.
c++ - 如何输入 4 字节的 UTF-8 字符?
我正在编写一个小应用程序,我需要使用不同字节长度的 utf-8 字符进行测试。
我可以输入 unicode 字符来测试以 utf-8 编码的 1,2 和 3 个字节,例如:
但是如何获得一个用 4 字节编码的 unicode 字符呢?我试过了:
据我了解应该是输出。但是当我打印出来时,我得到ᴶ0
我错过了什么?
编辑:
我通过添加前导零让它工作:
希望我早点想到这一点:)
c# - 模式中带有 \Uxxxxxxxx 字符的 C# 正则表达式
抛出:System.ArgumentException:以相反的顺序解析“[-]” - [xy] 范围。
查看 \U00010000 和 \U0010FFF 的十六进制值,我得到:第一个字符为 0xd800 0xdc00,第二个字符为 0xdbff 0xdfff。
所以我想我真的有一个问题。为什么用 \U 形成的 Unicode 字符在字符串中分成两个字符?
c# - 如何从 .NET 字符串中获取 Unicode 代码点数组?
我有一个字符范围限制列表,我需要检查一个字符串,但是char
.NET 中的类型是 UTF-16,因此一些字符变成了古怪的(代理)对。因此,在枚举char
a 中的所有 '时string
,我没有得到 32 位 Unicode 代码点,并且一些与高值的比较失败。
我对 Unicode 有足够的了解,可以在必要时自己解析字节,但我正在寻找 C#/.NET Framework BCL 解决方案。所以 ...
如何将 a 转换为 32 位 Unicode 代码点string
的数组 ( )?int[]
unicode - 在 Windows 上显示 U+FFFF 上方的 Unicode 字符
我正在使用 EVC++ 4 开发的应用程序在 Windows CE 5 上运行并且应该支持 unicode(AFAIK wchar_t 在 Windows 上使用 UTF-16,所以我正在使用它),所以我希望能够用“更具异国情调”来测试它人物。尤其是在 UTF-16 中使用 4 字节而不仅仅是 2 字节的字符。因此,我试图在文本编辑器中显示这些字符(atm 在我的带有 Windows XP 的台式 PC 上,而不是在嵌入式设备上)。
但我还没有做到这一点。作为一个例子,我选择了这个角色。就像这里提到的“MPH 2B Damase”应该支持这个角色。所以我下载了字体并将其放入 Windows\Fonts。我使用十六进制编辑器(只是为了确定)创建了一个文本文件,其中包含以下内容:
当我用记事本打开它(应该支持 unicode,对吗?)并使用下载的字体时,它不会按预期显示 1 个字符,但这是 2:
我究竟做错了什么?:)
谢谢!
赫尼尔斯
编辑: 按照建议翻转 BOM 不起作用。在这种情况下,记事本(以及我尝试过的所有其他编辑器)显示两个正方形。有趣的是,如果我在这里复制两个方块(使用 firefox),我会看到正确的字符:
我也用 Komodo Edit 进行了尝试,结果相同。使用 UTF-8 也无助于记事本。
unicode - 我需要补充飞机吗?
我认为这个问题很简单,在基本平面之后我是否需要 Unicode 中的所有其他东西?包括什么样的东西,真的需要吗?(以及出于什么目的?)
谢谢。
c# - 使用 int 将 Astral Plane Unicode 代码点打印到控制台
请参阅此处了解相关问题。
但是,char
转到0xffff
(或65535
)。我需要写0xd800df46
(或66374
)哥特式字母Faihu,所以将其转换int
为char
行不通。我进行了转换,也就是说,我得到了正确的整数,这意味着我可以计算代理对,但我不知道如何“渲染”它,将其转换为要作为字形输出的字符。
请注意,我不能使用 \Unnnn ...好吧,理论上的原因。
谢谢你。
mysql - Mysql 服务器不支持 4 字节编码的 utf8 字符
我收到了从 Sql Server 到 MySql db 运行数据传输组件的服务器错误。错误信息如下:
[MySql][ODBC 5.1 Driver][mysqld-5.0.67-community-nt-log]Server does not support 4-byte encoded UTF8 characters.
源 Sql Server 表包含 nvarchar 列,目标 MySql 表包含 varchar 列。
任何人都可以阐明这个问题吗?
java - Java中的Unicode补充多语言平面
我想在 Java 中使用 SMP(补充多语言平面)。实际上,我想打印一个代码点大于 0xFFFF 的字符。我使用了这行代码:
具有特殊字符的代码点。但是如何将这个 unicode 字符打印到控制台?
预先感谢您的帮助。
utf-8 - 是否有一种语言在使用 UTF-8 编码时每个字符需要三个或更多字节?哪个?
常用的 ofc,克林贡语不算 :-)
谢谢,伙计们,让我运行 willItFit() 测试用例
好的,现在我知道使用 UTF-8 保存字节会导致比解决更多的问题,再次感谢
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 张幻灯片很好地涵盖了与此相关的问题: