Versuchen, die Ruby-Methoden .chr und .ord zu verstehen
Ich habe mit dem Ruby gearbeitetchr
undord
Methoden in letzter Zeit und es gibt ein paar Dinge, die ich nicht verstehe.
ei meinem aktuellen Projekt werden einzelne Zeichen in Ordinalwerte und von Ordinalwerten konvertiert. So wie ich es verstehe, wenn ich einen String mit einem individuellen Zeichen wie "A" habe und @ ruord
drauf bekomme ich seine Position in der ASCII-Tabelle, die 65 ist. Aufruf der Umkehrung,65.chr
gibt mir den Zeichenwert "A", was bedeutet, dass Ruby eine Sammlung von geordneten Zeichenwerten hat und diese Sammlung verwenden kann, um mir die Position eines bestimmten Zeichens oder das Zeichen an einer bestimmten Position zu geben. Ich kann mich irren, bitte korrigiere mich, wenn ich es bin.
Now Ich verstehe auch, dass Rubys Standardzeichenkodierung UTF-8 verwendet, sodass es mit Tausenden von möglichen Zeichen arbeiten kann. Also, wenn ich danach frage:
'好'.ord
Ich erhalte die Position des Zeichens, das 22909 ist. Wenn ich jedoch @ anruchr
auf diesem Wert:
22909.chr
Ich erhalte "RangeError: 22909 außerhalb des Zeichenbereichs." Ich kann nur @ bekommchar
, um mit Werten bis 255 zu arbeiten, die ASCII-erweitert sind. Also meine Fragen sind:
chr
aus dem erweiterten ASCII-Zeichensatz, aberord
von UTF-8?Kann Ruby auf irgendeine Weise angewiesen werden, bei diesen Methoden andere Codierungen zu verwenden? Sagen Sie ihm zum Beispiel, er soll ASCII-8BIT-Codierung anstelle dessen verwenden, was standardmäßig verwendet wirWenn es möglich ist, die Standardkodierung zu ändern, gibt es eine Möglichkeit, die Gesamtzahl der in dem verwendeten Satz verfügbaren Zeichen zu ermitteln?