【问题标题】:How convert utf8 string to utf16 string in python3如何在python3中将utf8字符串转换为utf16字符串
【发布时间】:2016-09-04 17:57:53
【问题描述】:

我有完整的 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 仍然不接受一些特殊字符(例如 ě,š,č,ř,...)

PS.:我在函数中这样做。我将value 添加到字典中

updated_dict[u'name'] = value

然后将updated_dict返回给调用函数并导出到.mat文件

scipy.io.savemat(filename,{u'save_struct':updated_dict})

【问题讨论】:

  • 你认为为什么需要设置convert_unicode
  • 我也尝试不使用此参数(在遇到此问题之前)。所以我尝试修复它,现在我把它留在代码中。在我的情况下似乎不需要它......

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-04
    • 2014-02-24
    • 2014-01-29
    • 1970-01-01
    • 2011-01-21
    • 2012-02-01
    • 2015-09-04
    • 1970-01-01
    相关资源
    最近更新 更多