pでの出力内容が同じ2つの値が、==でチェックすると一致せず困っています。
下記の情報から原因がわかる方いらっしゃれば教えてください。
ruby
1[27] pry(#<OpenSSL::SSL::SSLSocket>)> a = s[0] 2=> "\xFD" 3[28] pry(#<OpenSSL::SSL::SSLSocket>)> b = [0xfd].pack('C*') 4=> "\xFD" 5[29] pry(#<OpenSSL::SSL::SSLSocket>)> p a 6"\xFD" 7=> "\xFD" 8[30] pry(#<OpenSSL::SSL::SSLSocket>)> p b 9"\xFD" 10=> "\xFD" 11[31] pry(#<OpenSSL::SSL::SSLSocket>)> a == b 12=> false
aの元データであるsは、s3に保存したバイナリファイルをsdkで取ってきたものです。
このバイナリをSSLSocketでputsするとinvalid byte sequence in utf-8が発生してしまうため
どこがおかしいのか調べていたところ先頭文字の0xFDでこけていました。バイナリデータを
[0xfd].pack('C*')でつくってputsしたときはエラーが発生しなかったため冒頭の比較を
おこなったという状況です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/05 18:29