I need to print escaped characters to a binary file using Ruby. The main problem is that slashes need the whole byte to escape correctly, and I don’t know/can’t create the byte in such a way.
I am creating the hex value with, basically:
'\x' + char
Where char is some ‘hex’ value, such as 65. In hex, \x65 is the ASCII character ‘e’.
Unfortunately, when I puts this sequence to the file, I end up with this:
\\x65
How do I create a hex string with the properly escaped value? I have tried a lot of things, involving single or double quotes, pack, unpack, multiple slashes, etc. I have tried so many different combinations that I feel as though I understand the problem less now then I did when I started.
How?
Okay, if you want to create a string whose first byte has the integer value
0x65, useArray#pack10110 = 6516, so this works.
If you want to create a literal string whose first byte is ‘\’, second is ‘x’, third is ‘6’, and fourth is ‘5’, then just use interpolation: