diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2009-06-09 02:19:52 +0200 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2009-06-09 02:19:52 +0200 |
| commit | 1d8153e23d1cd08c83a784a5b3a00cb4b6ee33f1 (patch) | |
| tree | 7a018a2b514d21852a8dc794d5303a68dec5643c /lib/base/estring.cpp | |
| parent | 2d44425cd7352715bff59af3fa3a78f42c7c9699 (diff) | |
| parent | ddd3b54bd32d9bbf0768856093fcf2329525832e (diff) | |
| download | enigma2-1d8153e23d1cd08c83a784a5b3a00cb4b6ee33f1.tar.gz enigma2-1d8153e23d1cd08c83a784a5b3a00cb4b6ee33f1.zip | |
Merge branch 'master' of git.opendreambox.org:/git/enigma2
Diffstat (limited to 'lib/base/estring.cpp')
| -rw-r--r-- | lib/base/estring.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/base/estring.cpp b/lib/base/estring.cpp index 85bbcc69..be071454 100644 --- a/lib/base/estring.cpp +++ b/lib/base/estring.cpp @@ -398,8 +398,9 @@ std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts } break; } - case 0x11: - eDebug("unsup. Basic Multilingual Plane of ISO/IEC 10646-1 enc."); + case 0x11: // Basic Multilingual Plane of ISO/IEC 10646-1 enc (UTF-16... Unicode) + table = 65; + tsidonid = 0; ++i; break; case 0x12: @@ -438,8 +439,16 @@ std::string convertDVBUTF8(const unsigned char *data, int len, int table, int ts unsigned long code=0; if ( useTwoCharMapping && i+1 < len && (code=doVideoTexSuppl(data[i], data[i+1])) ) i+=2; - if (!code) - code=recode(data[i++], table); + if (!code) { + if (table == 65) { // unicode + if (i+1 < len) { + code=(data[i] << 8) | data[i+1]; + i += 2; + } + } + else + code=recode(data[i++], table); + } if (!code) continue; // Unicode->UTF8 encoding |
