7

変数を追加する必要がある文字列があるので、string.formatメソッドを使用しますが、文字列には記号も含まれています"%20"(それが何を表しているのかわかりません。おそらく空白などです)。とにかく、文字列には複数が含まれて"%"おり、変数を最初の変数に追加してIDを設定したいだけなので、ポイントなどで文字列をエスケープする方法はありますか?

現在のように:

ID = 12345
string.format("id=%s&x=foo=&bar=asd%20yolo%20123-1512", ID)

エラーがbad argument #3 to 'format' (no value).発生します-3つの変数が渡されることが予想されるためです。

4

4 に答える 4

6

%aを別のでエスケープできます。%たとえば、string.format("%%20")%20

于 2013-08-08T13:38:58.250 に答える
3

他の多くの言語とは異なり、Lua は%次の魔法の文字をエスケープするために使用します。

( ) . % + - * ? [ ] ^ $
于 2013-08-08T14:04:57.013 に答える
1

以下のコードは、すべての URL エスケープ (つまり、% の後に数字が続く) をエスケープします。

ID=12345
f="id=%s&x=foo=&bar=asd%20yolo%20123-1512"
f=f:gsub("%%%d","%%%1")
print(string.format(f,ID))
于 2013-08-08T13:41:06.540 に答える