#include <lib/base/encoding.h>
#include <lib/base/estring.h>
+std::string buildShortName( const std::string &str )
+{
+ std::string tmp;
+ static char stropen[3] = { 0xc2, 0x86, 0x00 };
+ static char strclose[3] = { 0xc2, 0x87, 0x00 };
+ unsigned int open=std::string::npos-1;
+ while ( (open = str.find(stropen, open+2)) != std::string::npos )
+ {
+ unsigned int close = str.find(strclose, open);
+ if ( close != std::string::npos )
+ tmp+=str.substr( open+2, close-(open+2) );
+ }
+ return tmp.length() ? tmp : str;
+}
+
std::string getNum(int val, int sys)
{
// Returns a string that contain the value val as string
++i;
eDebug("unsup. Big5 subset of ISO/IEC 10646-1 enc.");
break;
- case 0x15:
- ++i;
- eDebug("unsup. UTF-8 encoding of ISO/IEC 10646-1.");
- break;
+ case 0x15: // UTF-8 encoding of ISO/IEC 10646-1
+ return std::string((char*)data+1, len-1);
case 0x0:
case 0xC ... 0xF:
case 0x16 ... 0x1F:
- default:
eDebug("reserved %d", data[0]);
++i;
break;