2014-01-23 254 views
0

我可能會以錯誤的方式解決這個問題,並且這可能最終會成爲其他內容的重複。十六進制字符到實際十六進制字符的字符串

我有一個字符串,我需要轉換成二進制/十六進制。

這就是我要做的:

2.0.0p247 :050 > "test".unpack("H*").first 
"74657374" 

74657374是的,我需要的十六進制字符字符串,但我需要他們在實際的十六進制,而不是一個字符串。

我該如何獲得\x74\x65\x73\x74

我試過pack ing成對的十六進制字符,但它們最終返回字符串形式。我的目標是將一串字符串解析爲十六進制,然後將它們寫入文件。

回答

3

你需要什麼都不做。 "\x74\x65\x73\x74"只是"test"的另一種表示形式。嘗試在IRB:

"\x74\x65\x73\x74" == "test" 
#=> true 

還認爲:

$ ruby -e "File.open('test.txt', 'w'){|f| f.write 'test'}" 
$ hexdump test.txt 
0000000 74 65 73 74 
0000004 
+0

你是完全正確的,我是這個過於複雜 – Eugene