Ich muss so etwas tun:

  1. Haben Sie eine Variable irgendeiner Art.
  2. Führen Sie eine Schleife aus, weisen Sie dieser Variablen alle möglichen ASCII-Zeichen zu und drucken Sie sie nacheinander aus.

Ist etwas Ähnliches auch für UNICODE möglich?

5
Amit Tomar 9 Okt. 2012 im 11:29

3 Antworten

Beste Antwort

Ich bin nicht sicher, wie genau Sie drucken möchten, aber dies wird console.log druckbare ASCII

for(var i=32;i<127;++i) console.log(String.fromCharCode(i));

Sie können dann document.write, wenn dies Ihre Absicht ist. Und wenn die Umgebung Unicode ist, sollte sie meiner Meinung nach auch für Unicode funktionieren.

12
Michael Krelin - hacker 9 Okt. 2012 im 07:32

Es gibt einige der ASCII-Zeichen, die nicht druckbar sind. Wenn Sie jedoch beispielsweise die Zeichen von 32 (Leerzeichen) auf 126 (~) setzen möchten, würden Sie Folgendes verwenden:

var s = '';
for (var i = 32; i <= 127; i++) s += String.fromCharCode(i);

Der Unicode-Zeichensatz enthält mehr als 110.000 verschiedene Zeichen (siehe Unicode), eine normale Schriftart jedoch nicht. Sie enthalten nicht alle, sodass Sie sie ohnehin nicht anzeigen können. Sie müssten angeben, an welchen Teilen des Zeichenraums Sie interessiert sind.

0
dda 9 Okt. 2012 im 10:26

Andere haben gezeigt, wie die druckbaren Ascii-Zeichen gedruckt werden. Es ist auch möglich, alle anderen Ascii-Zeichen zu drucken, obwohl es sich um Steuerzeichen mit systemabhängigem Effekt handelt (häufig ohne Effekt). Gehen Sie folgendermaßen vor, um eine Zeichenfolge zu erstellen, die alle Ascii-Zeichen enthält.

var s = '';
for (var i = 0; i <= 127; i++) s += String.fromCharCode(i);

Unicode ist viel schwieriger, da der Unicode-Codierungsbereich von 0 bis 0x10FFFF eine große Anzahl nicht zugewiesener Codepunkte sowie Codepunkte enthält, die als Nichtzeichen bezeichnet werden. Es gibt auch Codepunkte für den privaten Gebrauch, die verwendet werden können, um Zeichen durch "private Vereinbarung" zu kennzeichnen, aber keine allgemein zugewiesene Bedeutung haben. Darüber hinaus sind viele Unicode-Zeichen nicht räumlich, d. H. Sie sollen mit dem vorhergehenden Zeichen kombiniert werden (z. B. "a" in "â" drehen), sodass Sie sie nicht visuell hintereinander drucken können. In JavaScript gibt es keine einfache Möglichkeit, die Klasse des entsprechenden Codepunkts aus einer Ganzzahl zu ermitteln. Möglicherweise müssen Sie die Datei UnicodeData.txt lesen, analysieren und die dort enthaltenen Informationen zum Klassifizieren von Codepunkten verwenden.

Schließlich gibt es das Programmierproblem, dass das JavaScript-Zeichenkonzept einer 16-Bit-Codeeinheit (kein Codepunkt) entspricht und jeder Unicode-Codepunkt größer als 0xFFFF mit zwei Codeeinheiten (sogenannten Surrogaten) dargestellt werden muss. Wenn Sie JavaScript im Kontext eines HTML-Dokuments verwenden und Zeichen im HTML-Inhalt drucken möchten, verwenden Sie am einfachsten Zeichenreferenzen wie &#x10400; (das das Unicode-Zeichen am Codepunkt {{X1 bezeichnet) }} hexadezimal) und weisen Sie die Zeichenfolge der Eigenschaft innerHTML eines Elements zu.

Wenn Sie Bereiche mit Unicode-Zeichen schreiben müssen, sehen Sie sich möglicherweise die vollständige Unicode-Eingabe an Dienstprogramm, das ich kürzlich geschrieben habe. Der Quellcode zeigt einige Möglichkeiten für den Umgang mit Unicode-Zeichen in JavaScript.

0
Jukka K. Korpela 9 Okt. 2012 im 08:49