AIX C++ iconv 转换失败
AIX C++ iconv conversion fails
我在 AIX 上使用 c++/XMS 来消费来自 MQ 的传入消息。 现在我需要将消息从 ISO8859-1 转换为 UTF-8。 我执行以下操作。
====
==========================================================void iso2utf8( char* text_iso, char* text_utf8, int nLen)
{
cout << "Converting to UTF-8." << endl;
iconv_t ic;
ic = iconv_open("UTF-8", "ISO8859-1"); // iso->utf8
cout << "Size of text_iso" << sizeof(text_iso) << endl;
size_t il = nLen;
size_t ol = nLen;
cout << "Size of text_iso" << ol << endl;
iconv(ic , &text_iso, &il, &text_utf8, &ol);
iconv_close(ic);
cout << "Message in UTF-8: " << text_utf8 << endl;
return;
}
====
==========================================================转换后,当我将消息保存到文件中时,我会返回 ISO8859-1 消息。 关于如何解决这个问题的任何提示。 我使用 fstream 写入文件。
你应该写"ISO-8859-1"而不是"ISO8859-1">
链接到iconv man: https://www.gnu.org/software/libiconv/documentation/libiconv-1.13/iconv_open.3.html
引文: fromcode 和 tocode 允许的值以及支持的组合取决于系统。对于 libiconv 库,支持以下编码,所有组合。
欧洲语言
ASCII, ISO−8859−{1,2,3,4,5,7,9,10,13,14,15,16} ...
相关文章:
- 模板参数替换失败,并且未完成隐式转换
- 分配给转换运算符失败-C++
- 将 const 转换为 const char* 无效,我该如何解决?使用 gcc7 时失败
- PyTorch C++将数据转换为张量失败
- 为什么在此示例中从unique_ptr自动向上转换<derived>到unique_ptr<base>失败?
- 使用静态转换,因为动态转换失败.不好的做法?
- 从 std::vector<double> 到 Python 列表的转换失败(提升 python)
- 从长型转换为相同大小的 int 失败
- 使用提升对字符串进行标记化时,将令牌转换为 char* const* 时失败
- 为什么在此代码中隐式转换为常量迭代器失败?
- 错误:静态断言失败:std ::线程参数必须在转换为rvalues后不可行
- 动态强制转换 (dynamic_cast) 在 OSx (XCode ) 上使用 .dylib 时失败
- C++长到字符串的转换失败
- 将HSV转换为RGB在OpenCV中失败
- QByteArray 转换为十六进制失败
- AIX C++ iconv 转换失败
- 匿名结构可提高函数转换在GCC 5.4上失败
- 将C 方法参数转换为模板参数会因编译错误而失败
- 失败的证明转换字符串到枚举类
- 有没有办法将模板的替换失败转换为布尔值(真/假)或标签(标准::true_type/标准::false_type)