Rubyから伺かのSakura Scriptを触る
キーポイントは,"\\"(二重バックスラッシュ)とShift_JISだった.
SSTPに関して,参考にしたのはこちら.
http://www.sbcr.jp/vwalker/feature/special_old/sp_20010625/index04.html
\s[id]
ってのが怪しかったので,デバッグプリントしてみるとRubyではただのスペースになってた.そりゃそうだ.ダブルクオーテーションの中なんだもの.そこで,とりあえず\uも\hも\\u,\\hにしたら,ちゃんと動いた.
ただ,UTF-8だとMacじゃ文字化けするっぽいので,Shift_JIS.並のエディタだとSJISの\を打てないので,Emacsとか推奨.
最後に,今回のコードを晒しておきます.
require 'socket' u = TCPSocket.open('localhost', 9801) HEADERS ={ 'Sender' => 'sstp_test', 'Charset' => 'Shift_JIS' } BREAK = "\r\n" # このへんはid:secondlifeさんの受け売り script = "\\h\\s[5]SSTP成功!\\u\\s[11]UTF-8だと文字化けする〜\e" headers = HEADERS.clone.update('Script' => script) h = ['SEND SSTP/1.1'] # SSTPをべた書きしたいので1.1 h << headers.map{|k, v| "#{k}: #{v}"} message = h.join(BREAK).concat(BREAK * 2) u.write(message)