【发布时间】:2011-12-10 01:04:38
【问题描述】:
我想即时对字符编码进行转码。我想使用 iostreams 和我自己的转码 streambuf,例如:
xcoder_streambuf xbuf( "UTF-8", "ISO-8859-1", cout.rdbuf() );
cout.rdbuf( &xbuf );
char *utf8_s; // pointer to buffer containing UTF-8 encoded characters
// ...
cout << utf8_s; // characters are written in ISO-8859-1
xcoder_streambuf 的实现将使用 ICU 的转换器 API。它会获取传入的数据(在这种情况下,来自utf8_s),对其进行转码,然后使用iostream 的原始steambuf 将其写出。
这是一个合理的方法吗?如果没有,什么会更好?
【问题讨论】:
标签: c++ unicode character-encoding iostream icu