irb(main):070:0> [*32..65535].pack("U*").encode('UTF-8', invalid: :replace, undef: :replace, replace: '').split('')
=> [" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "\u007F", "\u0080", "\u0081", "\u0082", "\u0083", "\u0084", "\u0085", "\u0086", "\u0087", "\u0088",
...
"\uFFEA", "\uFFEB", "\uFFEC", "\uFFED", "\uFFEE", "\uFFEF", "\uFFF0", "\uFFF1", "\uFFF2", "\uFFF3", "\uFFF4", "\uFFF5", "\uFFF6", "\uFFF7", "\uFFF8", "\uFFF9", "\uFFFA", "\uFFFB", "\uFFFC", "\uFFFD", "\uFFFE", "\uFFFF"]
irb(main):011:0> (32..127).map {|i| i.chr}
=> [" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "\x7F"]
「すべてのユニコード文字」が広すぎます。正確に何が必要ですか?手紙?たとえば、「★」はユニコード文字です。それが必要ですか? – mudasobwa
@mudasobwa英語とキリル文字のロケール(他のロケールも便利です)、数字、句読点が必要です。 – DreamWalker
範囲は常に連続的ではありません – YOU