如何在python3中将utf8字符串转换为utf16字符串

时间:2016-05-09 23:23:48

标签: python sqlite utf-8 octave utf-16

我在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})

1 个答案:

答案 0 :(得分:0)

value已经是一个Unicode对象。无视您完全绕过Sqlalchemy的功能来手动运行SQL以进行简单查询的事实,您应该能够做到:

utf16_value = value.encode('utf-16')

我也会质疑为什么Octave需要utf-16数据。