Welche Zeichenkodierung wird für ALT-Codes verwendet?

1906
Angus

Welche Zeichenkodierung wird unter Windows verwendet, wenn Sie Zeichen mit ALT + nnn eingeben? Welche Zeichenkodierung wird bei der Eingabe von Zeichen mit ALT + 0nnn verwendet? Und wie hängen diese Antworten von den Sprach- und Eingabemethodeneinstellungen von Windows ab, wenn überhaupt? Und ist es immer so, dass sich die Codes nach 255 wiederholen?

Ich habe mehrere Websites gefunden, deren Informationen verwirrend, veraltet, möglicherweise sprachspezifisch oder einfach nur falsch sind. Und obwohl dies eine bekannte und weit verbreitete Windows-Funktion ist, kann ich keine vernünftige offizielle Dokumentation dazu finden.

6

1 Antwort auf die Frage

4
RedGrittyBrick

Ich glaube, diese Verknüpfungen hängen von den Bibliotheken ab, die von bestimmten Programmen wie Word, Excel und Notepad verwendet werden. Verweise auf Alt-Zeichencodes auf microsoft.com stehen immer im Kontext einer bestimmten Anwendung oder Suite.

Das aus Alt + nnn resultierende Zeichen sollte nicht von einem IME abhängen, sondern sollte Dokument-, Anwendungs- oder Windows-Spracheinstellungen berücksichtigen, die die derzeit verwendete Standard-Codepage bestimmen.

Microsoft verwendet unbekannte Begriffe wie ASCII und ANSI. Die Dokumentation von Alt + nnn spiegelt dies wider.

Hier ist ein kleines Experiment in der Eingabeaufforderung unter Vista

c:\>chcp 437 Active code page: 437 c:\>rem alt+224 α c:\>rem alt+0224 à  c:\>chcp 869 Active code page: 869 c:\>rem alt+224 ζ c:\>rem alt+0224 à c:\>rem alt 0137 ‰ 

Nach dem Hinzufügen eines griechischen Tastaturlayouts in der Systemsteuerung und der Auswahl von Griechisch aus der Sprachleiste zeigte ein Experiment in WordPad, dass ALt + 0224 dann Code aus Code 1253 (Altgriechisch) und Alt + 224 produziert (obwohl ich ' t hat herausgefunden, welche DOS / OEM-Codepage dies impliziert)

Daraus folge ich das

  • Alt + nnn ist immer die aktuelle DOS-Codepage (auch als OEM bezeichnet)
  • Alt + 0nnn ist immer die aktuelle Windows-Codepage
  • die oben genannten unterscheiden sich
  • Die Sprachleiste kann verwendet werden, um diese zu ändern.

Zumindest für die Programme, die ich ausprobiert habe.

Ich würde sagen, es ist sehr zweifelhaft, dass dies tatsächlich von den Programmen selbst implementiert wird. Vielmehr wird es wahrscheinlich von einigen der zugrunde liegenden Grundelementen der Benutzeroberfläche implementiert, beispielsweise dem Edit-Steuerelement. Ich teste einfach an verschiedenen Stellen der aktuellen Benutzeroberfläche. Ich finde, dass ich an jedem Ort, an dem ich einen Cursor platzieren kann, die alt-Methode zur Eingabe von Zeichen verwenden kann. Wenn Sie sich die Dokumentation zum Rich Edit-Steuerelement ansehen, sehen Sie die Tastenkombination Alt + Numpad und einige andere, die sich darauf beziehen. http://msdn.microsoft.com/en-us/library/windows/desktop/bb787873(v=vs.85).aspx Svend vor 13 Jahren 1
@Svend: Ich glaube du hast recht, ich werde meine Antwort entsprechend ändern. Allerdings verwenden nicht alle Windows-Anwendungen die gleichen Bibliotheken und Steuerelemente. Ein naheliegendes und nicht überraschendes Beispiel wären Anwendungen von Drittanbietern wie gVim. Es ist für mich nicht unvorstellbar, dass es Unterschiede zwischen Anwendungen gibt, die commctrl.dll, comctl32.dll, MFC und .Net oder OWL, VCL usw. verwenden. RedGrittyBrick vor 13 Jahren 0
Sie finden Ihre OEM-Codepage, indem Sie ein Befehlsfenster öffnen und den Befehl `CHCP` verwenden. Sie können diesen Befehl auch verwenden, um nur die für dieses Fenster verwendete Codepage zu ändern. Mark Ransom vor 7 Jahren 0