我在utf8中有完整的源代码(在第二行使用“# - - coding:utf-8 - - ”)
在代码中,我使用sqlalchemy
从sqlite数据库字符串值中选择sel = u'SELECT name FROM station WHERE id == ...'
value = getattr(engine.execute(sel).fetchone(), u'name')
数据库中的是以这种方式创建的列name
Column(u'name', String(length=32, convert_unicode=True)
select
之后我需要将value
转换为utf16(由于SciPy发送给Octave)
我怎么能这样做?
我试试
value = value.encode(u'utf-8').decode(u'utf-16')
但Octave仍然不接受一些特殊字符(对于expamleě,š,č,ř,......)
PS:我在功能上这样做。我将value
添加到词典
updated_dict[u'name'] = value
然后将updated_dict
返回给调用者函数并导出到.mat文件
scipy.io.savemat(filename,{u'save_struct':updated_dict})
答案 0 :(得分:0)
value
已经是一个Unicode对象。无视您完全绕过Sqlalchemy的功能来手动运行SQL以进行简单查询的事实,您应该能够做到:
utf16_value = value.encode('utf-16')
我也会质疑为什么Octave需要utf-16数据。