Para una César César tradicional, usted verificaría que un carácter estaba en el rango [a-z] o [A-Z], y simplemente hágalo de otra manera.
Una alternativa es tratar a todos los caracteres de la misma manera, así que no solo convierte a b, sino que μ se convierte en ¶ y se envuelve en U + 10FFFF (el punto de código más alto en Unicode) se convierte en U + 0000 (el anterior es un carácter y el último un carácter nulo, pero no hay razón por la cual un string
no puede contenerlos para transmitir a otro lugar.
Entre esos dos, es actuar sobre el UTF-16. , solo agregue 1 al valor de cada char
y ajuste U + FFFF hasta U + 0000. La salida podría convertirse en una cadena UTF-16 no válida (porque podría haber coincidido mal con surrogates, pero eso no le impediría de pasarlo en un string
, y luego descifrarlo de nuevo. Después de todo, el cifrado moderno tampoco da como resultado cadenas válidas.
¡Gracias! Esto tiene sentido para mí, no me di cuenta de que podía hacer eso (¡soy un principiante completo!). –