def string_to_binary(val)
saved_object_count = -1
unless(@unique_table.has_key?(val)) then
saved_object_count = @written_object_count
@written_object_count += 1
@unique_table[val] = saved_object_count
utf16 = false
val.each_byte do |b|
if(b > 127) then
utf16 = true
break
end
end
if(utf16) then
bdata = Binary.type_bytes("6",Binary.charset_strlen(val,"UTF-8"))
val = Binary.charset_convert(val,"UTF-8","UTF-16BE")
val.force_encoding("ASCII-8BIT") if val.respond_to?("encode")
@object_table[saved_object_count] = bdata + val
else
bdata = Binary.type_bytes("5",val.bytesize)
@object_table[saved_object_count] = bdata + val
end
else
saved_object_count = @unique_table[val]
end
return saved_object_count
end