0
我正在使用Ruby 1.8上的Ruby-FFI來封裝使用UTF-16LE字符串的庫。該庫有一個返回這樣一個String的C函數。Ruby-FFI(ruby 1.8):讀取UTF-16LE編碼字符串
不管我換功能與
attach_function [:getVersion, [], :pointer]
,並在返回的指針調用read_string
,或者我是否符合
attach_function [:getVersion, [], :string]
我得到的回覆是隻有第一個字符包起來,因爲第二個字符爲空(\000
),結果FFI停止在那裏讀取字符串,顯然是因爲它假定它正在處理一個正常的,單空字符結束的字符串。
有什麼我需要做的,也許在我的Ruby程序或FFI的初始化或其他方式,使它知道我希望字符串是UTF-16LE編碼?我怎麼能解決這個問題?