Tentando entender os métodos Ruby .chr e .ord

Eu tenho trabalhado com o Rubychr eord métodos recentemente e há algumas coisas que eu não entendo.

Meu projeto atual envolve a conversão de caracteres individuais de e para valores ordinais. Pelo que entendi, se eu tenho uma string com um caractere individual como "A" e chamoord nele eu tenho sua posição na tabela ASCII que é 65. Chamando o inverso,65.chr fornece o valor do caractere "A", então isso me diz que Ruby tem uma coleção em algum lugar com valores de caracteres ordenados e pode usar essa coleção para me dar a posição de um caractere específico ou o caractere em uma posição específica. Posso estar errado nisso, por favor, corrija-me se estiver.

Agora também entendo que a codificação de caracteres padrão do Ruby usa UTF-8 para que ele possa trabalhar com milhares de caracteres possíveis. Portanto, se eu pedir algo assim:

'好'.ord

Eu recebo a posição desse personagem que é 22909. No entanto, se eu chamarchr nesse valor:

22909.chr

Recebo "RangeError: 22909 fora do intervalo de caracteres". Eu só consigochar para trabalhar em valores de até 255, que é estendido ASCII. Então, minhas perguntas são:

Por que Ruby parece estar obtendo valores parachr do conjunto de caracteres ASCII estendido, masord de UTF-8?Existe alguma maneira de dizer ao Ruby para usar codificações diferentes quando ele usa esses métodos? Por exemplo, diga a ele para usar a codificação ASCII-8BIT em vez do que é o padrão?Se for possível alterar a codificação padrão, existe alguma maneira de obter o número total de caracteres disponíveis no conjunto em uso?

questionAnswers(2)

yourAnswerToTheQuestion