aboutsummaryrefslogtreecommitdiff
path: root/lib/base/estring.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-06-09 02:19:52 +0200
committerFelix Domke <tmbinc@elitedvb.net>2009-06-09 02:19:52 +0200
commit1d8153e23d1cd08c83a784a5b3a00cb4b6ee33f1 (patch)
tree7a018a2b514d21852a8dc794d5303a68dec5643c /lib/base/estring.cpp
parent2d44425cd7352715bff59af3fa3a78f42c7c9699 (diff)
parentddd3b54bd32d9bbf0768856093fcf2329525832e (diff)
downloadenigma2-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.cpp17
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