utf8.offset(s, n, i)
を使用して、特定のバイト位置と文字位置から開始するn
の文字のオフセットを見つけるにはどうすればよいですか?utf8.offset:開始位置を指定する方法は?
がSのn番目の文字(iの位置から数えて)のエンコードが開始さ(バイト単位)の位置を返します。私は
i
だ...
を:としてi
パラメータが文書化されています私が必要とするものですが、バイト位置か文字位置かどうかはわかりません。どうすれば使えますか?
utf8.offset(s, n, i)
を使用して、特定のバイト位置と文字位置から開始するn
の文字のオフセットを見つけるにはどうすればよいですか?utf8.offset:開始位置を指定する方法は?
がSのn番目の文字(iの位置から数えて)のエンコードが開始さ(バイト単位)の位置を返します。私は
i
だ...
を:としてi
パラメータが文書化されています私が必要とするものですが、バイト位置か文字位置かどうかはわかりません。どうすれば使えますか?
Luaマニュアルに記載されているすべての文字列オフセットは、マニュアルで別途指示されていない限りバイト単位です。したがって、utf8.offset
の戻り値と同様に、i
はバイトオフセットです。
さらに、「i」が開始位置になりますか? '1 == i'のようなもの。 – Hydro
@PolarDigit:ドキュメントに「i」と書かれていることがわかります。 –
「i」はバイト位置(1から開始)です。同じ 's'の' utf8.offset(s、n、i) 'の次の呼び出しで' utf8.offset'によって返された結果を 'i'の値として使うことができます。 –
@EgorSkriptunoffありがとう!だからLuaはこの関数で文字列をキャッシュしていますか? – Hydro
いいえ、Luaは文字列をキャッシュしません。引数 'i'で指定したバイト位置から文字列を解析し始めます。そのため、不要な解析を避けるために、これを段階的に使用することができます。 –