outP output buffer handle,
inP source text buffer handle,
max count of characters to convert, optional, defaults to 0.
This is a main tool to be used. It quicly converts a block of text from one character set to another. Function returns tconv::error when it fails or number of bytes (not characters) converted, in case of success.
When max is not provided (eq. 0), function assumes the input source is NULL-terminated and converts every character, until the final NULL-byte. When max is provided as positive integer, function attempts to convert exactly that number of characters but also stops when it finds the NULL-byte along its way.
The output location needs to be wide enough to store entire set of converted characters.
NOTE: It is valid to pass the same location as input and output, as long as it is big enough to store the output string.
// C++ source #include <iostream> #include <fstream> #include <cstring> #include "tconv.h" using namespace std; int main(){ const char fName[]={"test_utf8.txt"}; ifstream fs; char cBuff[256]; tconv tc("pl_PL.utf8", "pl_PL.iso_8859-2"); fs.open(fName); if(! fs.good()){ cout << "Can not open " << fName << endl; return 1; // whoops } memset(cBuff, 0, 256); fs.read(cBuff, 256); // we read 1st 256 bytes fs.close(); if(tc.convert(cBuff,cBuff) == tconv::error) cout << "Conversion failed..." << endl; else { // Note that cBuff will show up as garbage, // if converted into encoding not supported // by stdout. cout << "Conversion successful..." << endl << cBuff << endl; } return 0; }