Linux中PHP的utf8_decode函数的C ++等价物

时间:2012-12-20 08:39:57

标签: c++ linux unicode utf-8

  

可能重复:
  C++ & Boost: encode/decode UTF-8

我需要将具有UTF-8编码文本的wstring(错误地)转换为自己新修正的wstring。

PHP的ut8_decode函数可以完美地处理这个问题。我也可以通过iconv来实现:

从:

# cat wtf  | grep 1856 | awk '{print $2}'
å°ç³å·ãçç¾

为:

#cat wtf  | grep 1856 | awk '{print $2}'| iconv -f utf8 -t ISO-8859-1
小石川 玉美

在C#中我能够通过以下方式获得此行为:

public static string Utf8Decode(string utf8me) {
    return Encoding.UTF8.GetString(Encoding.GetEncoding(28591).GetBytes(utf8me));
}

我的大多数搜索都提出了Windows特定的解决方法。由于我在Linux上,我假设我想使用iconv,但我不知道如何在C ++中这样做。