6

Unicode 文字の全範囲を繰り返すことはできません。

あちこち探した...

私はファザーを構築していて、すべての Unicode 文字 (一度に 1 つずつ) を URL に埋め込みたいと考えています。

例えば: http://www.example.com?a=\uff1c

いくつかの組み込みツールがあることは知っていますが、もっと柔軟性が必要です。

次のようなことができれば、"\u" + "ff1c"それは素晴らしいことです。

これは私が得た最も近いものです:

char = "\u0000"
...

#within iteration

char.succ!

...

ただし、数字の 9 である文字の後に"\u0039"は、「:」ではなく「10」が表示されます。

4

2 に答える 2

2

pack を使用して数値を UTF8 文字に変換できますが、これで問題が解決するかどうかはわかりません。

すべての文字の数値で配列を作成し、pack を使用して UTF8 文字列を取得するか、0 から必要なものまでループして、ループ内で pack を使用することができます。

私は自分自身を説明するために小さな例を書きました。以下のコードは、各文字の 16 進値とそれに続く文字自体を出力します。

0.upto(100) do |i|
    puts "%04x" % i + ": " + [i].pack("U*")
end
于 2011-01-12T08:57:30.070 に答える
1

以下は、Ruby が << 演算子の右側の整数をコードポイントに変換するという事実を利用して、少し難読化されていますが、いくつかの単純なコードです。これは Ruby 1.8 以降の整数値 <= 255 でのみ機能します。1.9 では 255 を超える値で機能します。

0.upto(100) do |i|
  puts "" << i
end
于 2013-02-12T13:04:03.060 に答える