diff --git a/src/eitd/edvbstring.cpp b/src/eitd/edvbstring.cpp index 003e067bf..0267cea1c 100644 --- a/src/eitd/edvbstring.cpp +++ b/src/eitd/edvbstring.cpp @@ -2039,7 +2039,7 @@ std::string convertDVBUTF8(const char *data, int len, int table, int tsidonid) //printf("table %d tsidonid %04x twochar %d : %20s\n", table, tsidonid, twochar, data); switch(data[0]) { - case 1 ... 12: + case 1 ... 11: newtable=data[i++]+4; // eDebug("(1..12)text encoded in ISO-8859-%d",table); break; @@ -2078,6 +2078,8 @@ std::string convertDVBUTF8(const char *data, int len, int table, int tsidonid) ++i; {} //eDebug("unsup. Big5 subset of ISO/IEC 10646-1 enc."); break; + case 0x15: // UTF-8 encoding of ISO/IEC 10646-1 + return std::string((char*)data+1, len-1); case 0x1F: { #ifdef ENABLE_FREESATEPG @@ -2088,8 +2090,8 @@ std::string convertDVBUTF8(const char *data, int len, int table, int tsidonid) ++i; break; case 0x0: - case 0xD ... 0xF: - case 0x15 ... 0x1E: + case 0xC ... 0xF: + case 0x16 ... 0x1E: {} //eDebug("reserved %d", data[0]); ++i; break;