#include #include #include #include #include #include #include #include "util.h" using namespace std; namespace Util { void str_dump(const string& str) { for (unsigned i=0; i(str.at(i)) << " "; } cout.width(1); cout << dec << endl; } void str_clean(string* str, string search, string replace) { unsigned int pos = 0; while ( (pos = str->find(search,pos)) != string::npos) { str->replace(pos, search.size(), replace); pos += replace.size(); } } vector str_split(string input, string delimiter) { vector retval; while ( 1 ) { unsigned int endpos = input.find(delimiter); string entry = input.substr(0,endpos); retval.push_back( entry ); if (endpos == string::npos) break; endpos += delimiter.length(); input = input.substr(endpos, input.length() - endpos); } return retval; } string readUrl(string url, string tempfile) { char buf[128000]; string document; ostringstream command; command << "wget -O " << tempfile << " -o /dev/null \"" << url << "\""; system( command.str().c_str() ); ifstream in( tempfile.c_str() ); if (!in) return ""; while (!in.eof() ) { in.getline(buf,128000-1); document += buf; document += "\n"; } in.close(); unlink(tempfile.c_str()); return document; } string convertToUnicode(string _input) { char* input,*output,*input_ptr, *output_ptr; input = input_ptr = (char*) malloc(_input.size()+1); strcpy(input, _input.c_str()); output = output_ptr = (char*) malloc(_input.size()*2); unsigned int realinsize,insize,outsize,realsize; iconv_t icv = iconv_open("UTF8", "ISO8859-1"); if (icv == (iconv_t)-1) { perror(0); return ""; } realsize = outsize = _input.size()*2; realinsize = insize = _input.size(); iconv(icv, &input_ptr, &insize, &output_ptr, &outsize); perror(0); /* cout << "len=" << len << endl; cout << "outsize=" << outsize << endl; cout << "realsize=" << realsize << endl; cout << "insize=" << insize << endl; cout << "realinsize=" << realinsize << endl;*/ iconv_close(icv); string returnstr; for (unsigned int i=0; i