Bagaimana cara mengganti karakter dengan nilai hex?


8

Saya ingin mengganti karakter dengan hex literal-nya. Misalnya sebelum regex:

h

Setelah regex:

0x68

Saya mencoba ini:

s/\([a-z]\)/\=printf("%#02x", submatch(0))/

Tapi ini menggantikannya dengan

00

Apa yang saya lakukan salah? Apakah ini mungkin?

Jawaban:


10

Dengan cara itu, printfdiharapkan angka desimal dikonversi menjadi angka heksadesimal. Yang perlu Anda lakukan adalah mengonversi karakter ke angka sebagai berikut:

s/\([a-z]\)/\=printf("%#02x", char2nr(submatch(0)))/

Lihat :help char2nr()detailnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.