不能再使用Alt代码插入Unicode字符


10

一段时间以来,我一直在一些应用程序中使用省略号8230 的Alt代码。几天前,它停止工作,并&显示出来,而不是在按Alt+ 8+ 2+ 3+ 0(在数字键盘上)时显示。这既发生在台式机上,也发生在笔记本电脑(与一起使用的地方Fn)上。两者都在代码页为850的64bit-Win-7上运行,并且都可能最近更新了Windows和Opera 12。

禁用此输入法的原因可能是什么如何将其切换回去

顺便说一句,我刚刚发现Alt+ 0+ 1+ 3+ 3不工作。另外我发现Alt+ 8+ 2+ 3+ 0仍然工作在写字板或MsWord10,但无论是在戏也不记事本++ -那里的字符代码插入之前转换系数256。


我建议您尝试一下WinCompose,因为它使您可以通过简单直观的组合输入省略号[Alt] [.] [.]
sam hocevar '16


@LưuVĩnhPhúc不,这是一个完全不同的问题。请注意,8230是省略号的十进制字符代码,而不是十六进制的代码。
Bergi

Answers:


6

据我所知,Alt nnnn(十进制的nnnn> 255)方法是RichEdit功能,因此仅适用于选定的程序,例如写字板和MS Word。在其他程序中,输入的数字nnnn以256模的形式减少,以产生0 ... 255范围内的数字,该数字根据使用的代码页进行解释。

cf. 要插入的Unicode通过键盘字符?描述了一些替代方法。不幸的是,默认情况下默认情况下已禁用Alt + xxxx(xxxx十六进制;例如,“ ...”的Alt + 2026)方法,并且您需要修改Windows注册表以允许它。除了UnicodeInput实用程序之外,还存在按名称输入Unicode Input,但是这些方法不像Alt方法那样方便快速键入。


谢谢,这似乎是正确的方向。显然,Opera 12放弃了此RichEdit功能。我可以通过某种方式手动重新启用它,还是需要编写错误报告?
Bergi 2012年

1
+1您的评论是,在其他程序中,字符值为mod 256正是我在记事本中观察到的行为。
妮可·汉密尔顿

4

Alt代码和unicode字符只是模糊地相关,并且(在大多数情况下)取决于每个应用程序来决定如何处理它们,因此应用程序,应用程序版本等之间可能有所不同。

本质上,它是关于字符编码和代码页的,而不是字体或用户输入的。

ASCII的替代代码仅为0-255(8位代码页)。许多程序(和OS)通过包装为256处理用户输入的较大数字。

256 = 0,257 = 1,依此类推。

因此输入ALT + 8230实际上等效于键入ALT + 38(8230/256 = 32.1484375。256 * 32 =8192。8230-8192 = 38),这是ASCII字符“&”-除非程序将其截获并且例如,将其替换为“正确的” Unicode代码,或者使用不同的代码页(即Unicode),例如MS Word和较新的写字板版本。

Windows使用MSDOS 8位代码页(850)的扩展版本,称为“ Windows-1252 ”代码页(始终适用于英语)。但是它仅将其用于不完全支持Unicode代码页的OS的遗留部分。

这就是为什么您可以在不同的操作系统和应用程序以及Windows本身的不同部分中轻松看到不同结果的原因。

至少可以说这是一个令人困惑的问题。:)

我很确定Alt-0133是省略号的“官方” Windows扩展ALT代码(在Windows代码页中),因此使用它可能会带来更多的一致性。

这是更多相关信息


感谢您提供的信息链接。搜索问题时,我已经看到有令人困惑的差异:-)
Bergi 2012年

1

U + 8230不是省略号,而是汉字战舰。我不知道您为什么会用该代码省略号,但是133确实是正确的代码点。

您在哪里看到8230的省略号?自上次更新以来,这可能已修复了Opera中的错误。如果是在“多个应用程序”中,则可能是您的字体或键盘布局/区域设置中存在错误(某些东西没有明显的或合理的含义,因此与合法设置相对应一定是错误)。

如果(由于某种原因)您真的想要/需要一个不正确的代码点,而不是使用正确的代码点,则可以使用可以使用Authotkey之类的东西来创建一个接受和弦或序列并输出所需内容的脚本。

确定可以输入Alt+ Numpad-8+ Numpad-0+ Numpad-2+ Numpad-3吗?尽管某些程序可能会独立支持它,但是Windows默认情况下不接受像这样的高Unicode代码点。您可以使用hex-entryAlt+ Numpad-++ 2+ 0+ 2+ 6


8230是十六进制2026的十进制,实际上是省略号。fileformat.info/info/unicode/char/2026/index.htm Alt + 8230在Win7 x64上对某些应用程序(例如Outlook新消息)有效,但对其他应用程序(例如记事本)无效。
妮可·汉密尔顿

8230U + 2026省略号)的十进制字符代码。我从未使用过+or 0前缀,只是按下Alt并输入了四位数的十进制字符。如问题所述,这在Word中仍然有效。
Bergi 2012年

是的,我确定它可以正常工作,但是我想它只能在我最喜欢的应用程序中起作用:-/十六进制输入当前未启用并产生,所以我会坚持0133……
Bergi 2012年

>当前未启用十六进制输入, 也许没有,但是您可以启用它是为了方便,因为就像我说的那样,Windows默认情况下不接受8000+代码点(十进制)。使用hex-entry是Windows的一种设置,因此它可在所有应用程序中使用(至少所有支持Unicode编辑框的应用程序)。
Synetech 2012年

0

可能当前的字体不支持这种较高的Unicode字符,请将字体更改为“ Arial”,然后重试。

当我在写字板中对此进行测试时,ALT + 8 + 2 + 3 + 0适用于Arial,但不适用于某些其他字体。


1
不,字体确实支持显示它们。而且我也不认为字体会影响输入法。
Bergi 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.