在 Windows 中,如何输入 Unicode 基本多语言平面之外的字符?

Posted

技术标签:

【中文标题】在 Windows 中,如何输入 Unicode 基本多语言平面之外的字符?【英文标题】:In Windows, how do you enter a character outside of the Unicode Basic Multilingual Plane? 【发布时间】:2012-04-03 01:44:08 【问题描述】:

我知道 Windows 从 Windows XP 开始就支持补充平面。

我有一些我知道在基本多语言平面 (BMP) 之外有字符的字体。

对于这些字符,Unicode 代码点由五个十六进制数字组成。

我不知道如何在应用程序中输入这些字符。

Windows 似乎只支持 BMP 中字符的键盘输入。您可以输入十进制数,或者某些应用程序允许您输入四位十六进制数。

有人可以确认条目是如何管理的吗?我不在乎它是直接来自键盘还是应用程序辅助。 (默认的 Windows“字符映射”应用程序仅支持 BMP 中的字符,所以我需要建议 - 最好是支持至少 Unicode 版本 5 的应用程序,如果不是 6。)

在 Java 中,这些字符使用 UTF-16 中的“代理对”进行管理。我担心 Windows 也可能有一些旧的“Unicode 是 16 位”遗留问题,导致出现类似问题。即使确认我需要输入代理对号也是一个答案。

谢谢!

【问题讨论】:

【参考方案1】:

好吧,我显然不知道你在说什么。

无论如何,参考:

默认的 Windows“字符映射”应用程序仅支持 BMP 中的字符,因此我需要建议 - 最好是支持至少 Unicode 版本 5(如果不是 6)的应用程序。

我找到了一个可以提供帮助的应用程序的链接。

http://www.babelstone.co.uk/software/babelpad.html

下载它,然后选择菜单工具 -> 然后选择字符映射。

希望对您有所帮助。

如果不是因为误会而感到抱歉,只是想提供帮助。

【讨论】:

看起来babelstone.co.uk/Software/BabelMap.html 明确是当前支持Unicode 6.0 的字符映射应用程序。那应该可以。【参考方案2】:

至少在 MS Word 2007 中,Alt+X 方法也适用于非 BMP 字符:输入 U+,后跟十六进制的 Unicode 数字,然后 Alt+X。如果前面的字符不是数字或字母 A–F 或 X,则可以省略字符 U+。您可能需要明确选择文本的字体(即,Word 不一定会切换到包含该字符的字体,就像通常对 BMP 字符所做的那样)。

在 Word 中,您也可以使用“插入”→“符号”命令,然后在插入窗口中选择包含所需字符的字体。

使用UnicodeInput 程序,您可以通过按 Alt++ 然后输入 Unicode 数字来输入字符。它也支持非 BMP,但有一个奇怪的限制,由于程序错误:如果右数第四位是字母(例如,U+1B000),它不适用于非 BMP 字符。

Martin 的回答中提到的 BabelPad 是一个很好的选择,它可以让您按数字和 Unicode 名称选择字符。

可能还有其他 Unicode 编辑器可以让您使用 BMP;查看 Alan Wood 的 Unicode and Multilingual Programs and Utilities 列表。

【讨论】:

这很奇怪。自 Unicode 2.0 以来就存在补充平面(它们被保留,但未使用)。 Alan Wood 的列表没有提到应用程序是否支持 BMP 之外的字符,我知道其中一些应用程序仅限于 BMP。 -- Alt-X 很方便。我不知道它支持 BMP 之外的字符。【参考方案3】:

我现在编写了一个可以在网络浏览器上以类似应用程序的方式使用的小实用程序:Full Unicode Input utility。它类似于 Windows 中的字符映射,但允许您访问所有 Unicode 平面并获取在一个区域中收集的选定字符,从该区域可以将它们作为一个单元进行复制。有点快速和肮脏,但很实用。

【讨论】:

它看起来很整洁,但是... 它基于哪个版本的 Unicode?例如,如果您转到“CJK Unified Ideographs Extension B”,我会在该部分中看到一堆字符,但在该部分中显示的唯一一个只是“第一”,而其他字符则列为“未分配”。使用的 Unicode 数据库看起来很旧。 @yam655,它基于 6.2 版本(最新版本)。处理定义为范围的代码点(在字符数据库中)存在错误,只有第一个和最后一个点有它们的条目。这会影响鼠标悬停时显示的有关代码点的信息和单元格的颜色,而不是功能。我现在已经对此进行了快速而肮脏的修复。【参考方案4】:

我将无耻地插入我编写的用于在 Windows 中输入符号的小工具,因为我发现任何通常呈现​​的解决方案对于日常频繁使用来说都过于繁琐。我的个人用例是在国际美国键盘上键入瑞典语 å,而无需切换布局。

它允许通过弹出窗口输入 unicode 字符,这与 Apple OS X 中的工作方式没有什么不同。

详情请参阅https://github.com/mjvh80/SymWin,它是免费和开源的,但必须(当前)编译。如果有足够的兴趣,我可以添加一个预建版本。

该工具可以按键进行配置,例如通过从 http://copypastecharacter.com 等网站复制/粘贴符号一次。

【讨论】:

以上是关于在 Windows 中,如何输入 Unicode 基本多语言平面之外的字符?的主要内容,如果未能解决你的问题,请参考以下文章

非Unicode编码的软件如何在Windows系统上运行

如何在Windows命令行中使用unicode字符?

如何在tkinter python中输入bengali或Unicode语言

如何在 Windows 下显示带有 Unicode 字符的消息/警告/错误?

Unicode / UTF-8文本文件:Windows控制台上的乱码(试图显示希伯来语)

能不能修改windows的写字板默认的文件编码为unicode?