glibmm 2.4转换输入中的无效字节序列

时间:2015-03-09 23:54:21

标签: c++ utf-8 glibmm

尝试使用Glibmm-2.4输出中文返回"转换输入中的字节序列无效"。



#include <iostream>
#include <glibmm/ustring.h>
#include <glibmm/convert.h>

int main()
{
  Glib::ustring myUstring = "中";
  try
  {
    std::cout << myUstring;
  }
  catch(Glib::ConvertError e)
  {
    std::cout << e.what();
  }
  return 0;
}
&#13;
&#13;
&#13;

知道我在这里做错了吗? 使用Ubuntu 14.04.2 i386 LTS,g ++,glibmm-2.4

1 个答案:

答案 0 :(得分:0)

需要初始化语言环境。 std::locale::global(std::locale(""));为了使用ustring并让它正确执行流操作符的隐式转换,否则ASCII之外的字符无法正确转换。

记录在案here