diff --git a/data/encoding.conf b/data/encoding.conf index 7fff6091c..e84b4e55c 100644 --- a/data/encoding.conf +++ b/data/encoding.conf @@ -8,22 +8,22 @@ bul ISO8859-5 cn ISO3166-2 #Table of transponder using two byte char mappings (VideoTexSuppl) #TSID ONID -0x447 0x1 #ASTRA 19.2° UPC Direct -0x427 0x1 #ASTRA 19.2° UPC Direct -0x44b 0x1 #ASTRA 19.2° UPC Direct -0x4ff 0x1 #ASTRA 19.2° UPC Direct -0x407 0x1 #ASTRA 19.2° UPC Direct -0x436 0x1 #ASTRA 19.2° MTV Euro - MTV Networks -0x42a 0x1 #ASTRA 19.2° VH1 Classic - MTV Networks -0xc23 0x3 #ASTRA 23.5° CzechLink -0xc93 0x3 #ASTRA 23.5° CzechLink -0xc95 0x3 #ASTRA 23.5° CzechLink -0xc8b 0x3 #ASTRA 23.5° CzechLink -0xc89 0x3 #ASTRA 23.5° CzechLink -0xbc7 0x3 #ASTRA 23.5° CzechLink -0xc8f 0x3 #ASTRA 23.5° CzechLink -0xc85 0x3 #ASTRA 23.5° CzechLink -0xbc6 0x3 #ASTRA 23.5° CzechLink +# sky +0x1 0x85 ISO8859-1 +0x2 0x85 ISO8859-1 +0x3 0x85 ISO8859-1 +0x4 0x85 ISO8859-1 +0x5 0x85 ISO8859-1 +0x6 0x85 ISO8859-1 +0x7 0x85 ISO8859-1 +0xB 0x85 ISO8859-1 +0xC 0x85 ISO8859-1 +0xD 0x85 ISO8859-1 +0xE 0x85 ISO8859-1 +0xF 0x85 ISO8859-1 +0x11 0x85 ISO8859-1 +0x21 0x85 ISO8859-1 +# #TSID ONID 0x1 0x601 #UPC Cable Hungary 0x2 0x601 #UPC Cable Hungary diff --git a/src/sectionsd/edvbstring.cpp b/src/sectionsd/edvbstring.cpp index d7a63d3d3..14ceef95e 100644 --- a/src/sectionsd/edvbstring.cpp +++ b/src/sectionsd/edvbstring.cpp @@ -28,6 +28,9 @@ int readEncodingFile() else if ( (sscanf( line, "0x%x 0x%x ISO8859-%d", &tsid, &onid, &encoding ) == 3 ) ||(sscanf( line, "%d %d ISO8859-%d", &tsid, &onid, &encoding ) == 3 ) ) TransponderDefaultMapping[(tsid<<16)|onid]=encoding; + else if ( (sscanf( line, "0x%x 0x%x ISO%d", &tsid, &onid, &encoding ) == 3 && encoding == 6397 ) + ||(sscanf( line, "%d %d ISO%d", &tsid, &onid, &encoding ) == 3 && encoding == 6397 ) ) + TransponderDefaultMapping[(tsid<<16)|onid]=0; else if ( (sscanf( line, "0x%x 0x%x", &tsid, &onid ) == 2 ) ||(sscanf( line, "%d %d", &tsid, &onid ) == 2 ) ) TransponderUseTwoCharMapping.insert((tsid<<16)|onid); @@ -165,6 +168,14 @@ static unsigned long c885916[96]= { 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 0x0111, 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B, 0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF }; +static unsigned long iso6397[96]={ + 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0000, 0x00A7, 0x00A4, 0x2018, 0x201C, 0x00AB, 0x2190, 0x2191, 0x2192, 0x2193, + 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00D7, 0x00B5, 0x00B6, 0x00B7, 0x00F7, 0x2019, 0x201D, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, + 0x0000, 0xE002, 0xE003, 0xE004, 0xE005, 0xE006, 0xE007, 0xE008, 0xE009, 0xE00C, 0xE00A, 0xE00B, 0x0000, 0xE00D, 0xE00E, 0xE00F, + 0x2015, 0x00B9, 0x00AE, 0x00A9, 0x2122, 0x266A, 0x00AC, 0x00A6, 0x0000, 0x0000, 0x0000, 0x0000, 0x215B, 0x215C, 0x215D, 0x215E, + 0x2126, 0x00C6, 0x0110, 0x00AA, 0x0126, 0x0000, 0x0132, 0x013F, 0x0141, 0x00D8, 0x0152, 0x00BA, 0x00DE, 0x0166, 0x014A, 0x0149, + 0x0138, 0x00E6, 0x0111, 0x00F0, 0x0127, 0x0131, 0x0133, 0x0140, 0x0142, 0x00F8, 0x0153, 0x00DF, 0x00FE, 0x0167, 0x014B, 0x00AD +}; // Two Char Mapping ( many polish services and UPC Direct/HBO services) // get from http://mitglied.lycos.de/buran/charsets/videotex-suppl.html @@ -545,7 +556,8 @@ static inline unsigned int recode(unsigned char d, int cp) return d; switch (cp) { - case 0: // Latin1 <-> unicode mapping + case 0: // ISO6397 + return iso6397[d-0xA0]; case 1: // 8859-1 <-> unicode mapping return d; case 2: // 8859-2 -> unicode mapping