// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (C) 2005-2016, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
#include "unicode/utypes.h"
#include "cmemory.h"
#if !UCONFIG_NO_CONVERSION
#include "csrsbcs.h"
#include "csmatch.h"
#define N_GRAM_SIZE
3
#define N_GRAM_MASK
0 xFFFFFF
U_NAMESPACE_BEGIN
NGramParser::NGramParser(
const int32_t *theNgramList,
const uint8_t *theCharMap)
: ngram(
0 ), byteIndex(
0 )
{
ngramList = theNgramList;
charMap = theCharMap;
ngramCount = hitCount =
0 ;
}
NGramParser::~NGramParser()
{
}
/*
* Binary search for value in table, which must have exactly 64 entries.
*/
int32_t NGramParser::search(
const int32_t *table, int32_t value)
{
int32_t index =
0 ;
if (table[index +
32 ] <= value) {
index +=
32 ;
}
if (table[index +
16 ] <= value) {
index +=
16 ;
}
if (table[index +
8 ] <= value) {
index +=
8 ;
}
if (table[index +
4 ] <= value) {
index +=
4 ;
}
if (table[index +
2 ] <= value) {
index +=
2 ;
}
if (table[index +
1 ] <= value) {
index +=
1 ;
}
if (table[index] > value) {
index -=
1 ;
}
if (index <
0 || table[index] != value) {
return -
1 ;
}
return index;
}
void NGramParser::lookup(int32_t thisNgram)
{
ngramCount +=
1 ;
if (search(ngramList, thisNgram) >=
0 ) {
hitCount +=
1 ;
}
}
void NGramParser::addByte(int32_t b)
{
ngram = ((ngram <<
8 ) + b) & N_GRAM_MASK;
lookup(ngram);
}
int32_t NGramParser::nextByte(InputText *det)
{
if (byteIndex >= det->fInputLen) {
return -
1 ;
}
return det->fInputBytes[byteIndex++];
}
void NGramParser::parseCharacters(InputText *det)
{
int32_t b;
bool ignoreSpace =
false ;
while ((b = nextByte(det)) >=
0 ) {
uint8_t mb = charMap[b];
// TODO: 0x20 might not be a space in all character sets...
if (mb !=
0 ) {
if (!(mb ==
0 x20 && ignoreSpace)) {
addByte(mb);
}
ignoreSpace = (mb ==
0 x20);
}
}
}
int32_t NGramParser::parse(InputText *det)
{
parseCharacters(det);
// TODO: Is this OK? The buffer could have ended in the middle of a word...
addByte(
0 x20);
double rawPercent =
static_cast <
double >(hitCount) /
static_cast <
double >(ngramCount);
// if (rawPercent <= 2.0) {
// return 0;
// }
// TODO - This is a bit of a hack to take care of a case
// were we were getting a confidence of 135...
if (rawPercent >
0 .
33 ) {
return 98 ;
}
return static_cast <int32_t>(rawPercent *
300 .
0 );
}
#if !UCONFIG_ONLY_HTML_CONVERSION
static const uint8_t unshapeMap_IBM420[] = {
/* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */
/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 4- */ 0x40, 0x40, 0x42, 0x42, 0x44, 0x45, 0x46, 0x47, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
/* 5- */ 0x50, 0x49, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x58, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
/* 6- */ 0x60, 0x61, 0x62, 0x63, 0x63, 0x65, 0x65, 0x67, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
/* 7- */ 0x69, 0x71, 0x71, 0x73, 0x74, 0x75, 0x76, 0x77, 0x77, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x80, 0x8B, 0x8B, 0x8D, 0x8D, 0x8F,
/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9E, 0x9E,
/* A- */ 0x9E, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x9E, 0xAB, 0xAB, 0xAD, 0xAD, 0xAF,
/* B- */ 0xAF, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xB1, 0xBB, 0xBB, 0xBD, 0xBD, 0xBF,
/* C- */ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xBF, 0xCC, 0xBF, 0xCE, 0xCF,
/* D- */ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDA, 0xDC, 0xDC, 0xDC, 0xDF,
/* E- */ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
/* F- */ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
};
NGramParser_IBM420::NGramParser_IBM420(
const int32_t *theNgramList,
const uint8_t *th
eCharMap):NGramParser(theNgramList, theCharMap)
{
alef = 0 x00;
}
NGramParser_IBM420::~NGramParser_IBM420() {}
int32_t NGramParser_IBM420::isLamAlef(int32_t b)
{
if (b == 0 xB2 || b == 0 xB3){
return 0 x47;
}else if (b == 0 xB4 || b == 0 xB5){
return 0 x49;
}else if (b == 0 xB8 || b == 0 xB9){
return 0 x56;
}else
return 0 x00;
}
/*
* Arabic shaping needs to be done manually. Cannot call ArabicShaping class
* because CharsetDetector is dealing with bytes not Unicode code points. We could
* convert the bytes to Unicode code points but that would leave us dependent
* on CharsetICU which we try to avoid. IBM420 converter amongst different versions
* of JDK can produce different results and therefore is also avoided.
*/
int32_t NGramParser_IBM420::nextByte(InputText *det)
{
if (byteIndex >= det->fInputLen || det->fInputBytes[byteIndex] == 0 ) {
return -1 ;
}
int next;
alef = isLamAlef(det->fInputBytes[byteIndex]);
if (alef != 0 x00)
next = 0 xB1 & 0 xFF;
else
next = unshapeMap_IBM420[det->fInputBytes[byteIndex]& 0 xFF] & 0 xFF;
byteIndex++;
return next;
}
void NGramParser_IBM420::parseCharacters(InputText *det)
{
int32_t b;
bool ignoreSpace = false ;
while ((b = nextByte(det)) >= 0 ) {
uint8_t mb = charMap[b];
// TODO: 0x20 might not be a space in all character sets...
if (mb != 0 ) {
if (!(mb == 0 x20 && ignoreSpace)) {
addByte(mb);
}
ignoreSpace = (mb == 0 x20);
}
if (alef != 0 x00){
mb = charMap[alef & 0 xFF];
// TODO: 0x20 might not be a space in all character sets...
if (mb != 0 ) {
if (!(mb == 0 x20 && ignoreSpace)) {
addByte(mb);
}
ignoreSpace = (mb == 0 x20);
}
}
}
}
#endif
CharsetRecog_sbcs::CharsetRecog_sbcs()
{
// nothing else to do
}
CharsetRecog_sbcs::~CharsetRecog_sbcs()
{
// nothing to do
}
int32_t CharsetRecog_sbcs::match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t byteMap[]) const
{
NGramParser parser(ngrams, byteMap);
int32_t result;
result = parser.parse(det);
return result;
}
static const uint8_t charMap_8859_1[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 xAA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 xB5, 0 x20, 0 x20,
0 x20, 0 x20, 0 xBA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xFF,
};
static const uint8_t charMap_8859_2[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 xB1, 0 x20, 0 xB3, 0 x20, 0 xB5, 0 xB6, 0 x20,
0 x20, 0 xB9, 0 xBA, 0 xBB, 0 xBC, 0 x20, 0 xBE, 0 xBF,
0 x20, 0 xB1, 0 x20, 0 xB3, 0 x20, 0 xB5, 0 xB6, 0 xB7,
0 x20, 0 xB9, 0 xBA, 0 xBB, 0 xBC, 0 x20, 0 xBE, 0 xBF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 x20,
};
static const uint8_t charMap_8859_5[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 x20, 0 xFE, 0 xFF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 x20, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 x20, 0 xFE, 0 xFF,
};
static const uint8_t charMap_8859_6[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 xC1, 0 xC2, 0 xC3, 0 xC4, 0 xC5, 0 xC6, 0 xC7,
0 xC8, 0 xC9, 0 xCA, 0 xCB, 0 xCC, 0 xCD, 0 xCE, 0 xCF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
};
static const uint8_t charMap_8859_7[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 xA1, 0 xA2, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 xDC, 0 x20,
0 xDD, 0 xDE, 0 xDF, 0 x20, 0 xFC, 0 x20, 0 xFD, 0 xFE,
0 xC0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 x20, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 x20,
};
static const uint8_t charMap_8859_8[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 xB5, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
};
static const uint8_t charMap_8859_9[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 xAA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 xB5, 0 x20, 0 x20,
0 x20, 0 x20, 0 xBA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 x69, 0 xFE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 x20,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xFF,
};
static const int32_t ngrams_windows_1251[] = {
0 x20E220, 0 x20E2EE, 0 x20E4EE, 0 x20E7E0, 0 x20E820, 0 x20EAE0, 0 x20EAEE, 0 x20EDE0, 0 x20EDE5, 0 x20EEE1, 0 x20EFEE, 0 x20EFF0, 0 x20F0E0, 0 x20F1EE, 0 x20F1F2, 0 x20F2EE,
0 x20F7F2, 0 x20FDF2, 0 xE0EDE8, 0 xE0F2FC, 0 xE3EE20, 0 xE5EBFC, 0 xE5EDE8, 0 xE5F1F2, 0 xE5F220, 0 xE820EF, 0 xE8E520, 0 xE8E820, 0 xE8FF20, 0 xEBE5ED, 0 xEBE820, 0 xEBFCED,
0 xEDE020, 0 xEDE520, 0 xEDE8E5, 0 xEDE8FF, 0 xEDEE20, 0 xEDEEE2, 0 xEE20E2, 0 xEE20EF, 0 xEE20F1, 0 xEEE220, 0 xEEE2E0, 0 xEEE3EE, 0 xEEE920, 0 xEEEBFC, 0 xEEEC20, 0 xEEF1F2,
0 xEFEEEB, 0 xEFF0E5, 0 xEFF0E8, 0 xEFF0EE, 0 xF0E0E2, 0 xF0E5E4, 0 xF1F2E0, 0 xF1F2E2, 0 xF1F2E8, 0 xF1FF20, 0 xF2E5EB, 0 xF2EE20, 0 xF2EEF0, 0 xF2FC20, 0 xF7F2EE, 0 xFBF520,
};
static const uint8_t charMap_windows_1251[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x90, 0 x83, 0 x20, 0 x83, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x9A, 0 x20, 0 x9C, 0 x9D, 0 x9E, 0 x9F,
0 x90, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x9A, 0 x20, 0 x9C, 0 x9D, 0 x9E, 0 x9F,
0 x20, 0 xA2, 0 xA2, 0 xBC, 0 x20, 0 xB4, 0 x20, 0 x20,
0 xB8, 0 x20, 0 xBA, 0 x20, 0 x20, 0 x20, 0 x20, 0 xBF,
0 x20, 0 x20, 0 xB3, 0 xB3, 0 xB4, 0 xB5, 0 x20, 0 x20,
0 xB8, 0 x20, 0 xBA, 0 x20, 0 xBC, 0 xBE, 0 xBE, 0 xBF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xFF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 xF0, 0 xF1, 0 xF2, 0 xF3, 0 xF4, 0 xF5, 0 xF6, 0 xF7,
0 xF8, 0 xF9, 0 xFA, 0 xFB, 0 xFC, 0 xFD, 0 xFE, 0 xFF,
};
static const int32_t ngrams_windows_1256[] = {
0 x20C7E1, 0 x20C7E4, 0 x20C8C7, 0 x20DAE1, 0 x20DDED, 0 x20E1E1, 0 x20E3E4, 0 x20E6C7, 0 xC720C7, 0 xC7C120, 0 xC7CA20, 0 xC7D120, 0 xC7E120, 0 xC7E1C3, 0 xC7E1C7, 0 xC7E1C8,
0 xC7E1CA, 0 xC7E1CC, 0 xC7E1CD, 0 xC7E1CF, 0 xC7E1D3, 0 xC7E1DA, 0 xC7E1DE, 0 xC7E1E3, 0 xC7E1E6, 0 xC7E1ED, 0 xC7E320, 0 xC7E420, 0 xC7E4CA, 0 xC820C7, 0 xC920C7, 0 xC920DD,
0 xC920E1, 0 xC920E3, 0 xC920E6, 0 xCA20C7, 0 xCF20C7, 0 xCFC920, 0 xD120C7, 0 xD1C920, 0 xD320C7, 0 xDA20C7, 0 xDAE1EC, 0 xDDED20, 0 xE120C7, 0 xE1C920, 0 xE1EC20, 0 xE1ED20,
0 xE320C7, 0 xE3C720, 0 xE3C920, 0 xE3E420, 0 xE420C7, 0 xE520C7, 0 xE5C720, 0 xE6C7E1, 0 xE6E420, 0 xEC20C7, 0 xED20C7, 0 xED20E3, 0 xED20E6, 0 xEDC920, 0 xEDD120, 0 xEDE420,
};
static const uint8_t charMap_windows_1256[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x81, 0 x20, 0 x83, 0 x20, 0 x20, 0 x20, 0 x20,
0 x88, 0 x20, 0 x8A, 0 x20, 0 x9C, 0 x8D, 0 x8E, 0 x8F,
0 x90, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x98, 0 x20, 0 x9A, 0 x20, 0 x9C, 0 x20, 0 x20, 0 x9F,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 xAA, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 xB5, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xC0, 0 xC1, 0 xC2, 0 xC3, 0 xC4, 0 xC5, 0 xC6, 0 xC7,
0 xC8, 0 xC9, 0 xCA, 0 xCB, 0 xCC, 0 xCD, 0 xCE, 0 xCF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 x20,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xE0, 0 xE1, 0 xE2, 0 xE3, 0 xE4, 0 xE5, 0 xE6, 0 xE7,
0 xE8, 0 xE9, 0 xEA, 0 xEB, 0 xEC, 0 xED, 0 xEE, 0 xEF,
0 x20, 0 x20, 0 x20, 0 x20, 0 xF4, 0 x20, 0 x20, 0 x20,
0 x20, 0 xF9, 0 x20, 0 xFB, 0 xFC, 0 x20, 0 x20, 0 xFF,
};
static const int32_t ngrams_KOI8_R[] = {
0 x20C4CF, 0 x20C920, 0 x20CBC1, 0 x20CBCF, 0 x20CEC1, 0 x20CEC5, 0 x20CFC2, 0 x20D0CF, 0 x20D0D2, 0 x20D2C1, 0 x20D3CF, 0 x20D3D4, 0 x20D4CF, 0 x20D720, 0 x20D7CF, 0 x20DAC1,
0 x20DCD4, 0 x20DED4, 0 xC1CEC9, 0 xC1D4D8, 0 xC5CCD8, 0 xC5CEC9, 0 xC5D3D4, 0 xC5D420, 0 xC7CF20, 0 xC920D0, 0 xC9C520, 0 xC9C920, 0 xC9D120, 0 xCCC5CE, 0 xCCC920, 0 xCCD8CE,
0 xCEC120, 0 xCEC520, 0 xCEC9C5, 0 xCEC9D1, 0 xCECF20, 0 xCECFD7, 0 xCF20D0, 0 xCF20D3, 0 xCF20D7, 0 xCFC7CF, 0 xCFCA20, 0 xCFCCD8, 0 xCFCD20, 0 xCFD3D4, 0 xCFD720, 0 xCFD7C1,
0 xD0CFCC, 0 xD0D2C5, 0 xD0D2C9, 0 xD0D2CF, 0 xD2C1D7, 0 xD2C5C4, 0 xD3D120, 0 xD3D4C1, 0 xD3D4C9, 0 xD3D4D7, 0 xD4C5CC, 0 xD4CF20, 0 xD4CFD2, 0 xD4D820, 0 xD9C820, 0 xDED4CF,
};
static const uint8_t charMap_KOI8_R[] = {
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x00,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x61, 0 x62, 0 x63, 0 x64, 0 x65, 0 x66, 0 x67,
0 x68, 0 x69, 0 x6A, 0 x6B, 0 x6C, 0 x6D, 0 x6E, 0 x6F,
0 x70, 0 x71, 0 x72, 0 x73, 0 x74, 0 x75, 0 x76, 0 x77,
0 x78, 0 x79, 0 x7A, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 xA3, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 xA3, 0 x20, 0 x20, 0 x20, 0 x20,
0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20, 0 x20,
0 xC0, 0 xC1, 0 xC2, 0 xC3, 0 xC4, 0 xC5, 0 xC6, 0 xC7,
0 xC8, 0 xC9, 0 xCA, 0 xCB, 0 xCC, 0 xCD, 0 xCE, 0 xCF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
0 xC0, 0 xC1, 0 xC2, 0 xC3, 0 xC4, 0 xC5, 0 xC6, 0 xC7,
0 xC8, 0 xC9, 0 xCA, 0 xCB, 0 xCC, 0 xCD, 0 xCE, 0 xCF,
0 xD0, 0 xD1, 0 xD2, 0 xD3, 0 xD4, 0 xD5, 0 xD6, 0 xD7,
0 xD8, 0 xD9, 0 xDA, 0 xDB, 0 xDC, 0 xDD, 0 xDE, 0 xDF,
};
#if !UCONFIG_ONLY_HTML_CONVERSION
static const int32_t ngrams_IBM424_he_rtl[] = {
0 x404146, 0 x404148, 0 x404151, 0 x404171, 0 x404251, 0 x404256, 0 x404541, 0 x404546, 0 x404551, 0 x404556, 0 x404562, 0 x404569, 0 x404571, 0 x405441, 0 x405445, 0 x405641,
0 x406254, 0 x406954, 0 x417140, 0 x454041, 0 x454042, 0 x454045, 0 x454054, 0 x454056, 0 x454069, 0 x454641, 0 x464140, 0 x465540, 0 x465740, 0 x466840, 0 x467140, 0 x514045,
0 x514540, 0 x514671, 0 x515155, 0 x515540, 0 x515740, 0 x516840, 0 x517140, 0 x544041, 0 x544045, 0 x544140, 0 x544540, 0 x554041, 0 x554042, 0 x554045, 0 x554054, 0 x554056,
0 x554069, 0 x564540, 0 x574045, 0 x584540, 0 x585140, 0 x585155, 0 x625440, 0 x684045, 0 x685155, 0 x695440, 0 x714041, 0 x714042, 0 x714045, 0 x714054, 0 x714056, 0 x714069,
};
static const int32_t ngrams_IBM424_he_ltr[] = {
0 x404146, 0 x404154, 0 x404551, 0 x404554, 0 x404556, 0 x404558, 0 x405158, 0 x405462, 0 x405469, 0 x405546, 0 x405551, 0 x405746, 0 x405751, 0 x406846, 0 x406851, 0 x407141,
0 x407146, 0 x407151, 0 x414045, 0 x414054, 0 x414055, 0 x414071, 0 x414540, 0 x414645, 0 x415440, 0 x415640, 0 x424045, 0 x424055, 0 x424071, 0 x454045, 0 x454051, 0 x454054,
0 x454055, 0 x454057, 0 x454068, 0 x454071, 0 x455440, 0 x464140, 0 x464540, 0 x484140, 0 x514140, 0 x514240, 0 x514540, 0 x544045, 0 x544055, 0 x544071, 0 x546240, 0 x546940,
0 x555151, 0 x555158, 0 x555168, 0 x564045, 0 x564055, 0 x564071, 0 x564240, 0 x564540, 0 x624540, 0 x694045, 0 x694055, 0 x694071, 0 x694540, 0 x714140, 0 x714540, 0 x714651,
};
static const uint8_t charMap_IBM424_he[] = {
/* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */
/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 4- */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 5- */ 0x40, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 7- */ 0x40, 0x71, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x40,
/* 8- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 9- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* B- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
};
static const int32_t ngrams_IBM420_ar_rtl[] = {
0 x4056B1, 0 x4056BD, 0 x405856, 0 x409AB1, 0 x40ABDC, 0 x40B1B1, 0 x40BBBD, 0 x40CF56, 0 x564056, 0 x564640, 0 x566340, 0 x567540, 0 x56B140, 0 x56B149, 0 x56B156, 0 x56B158,
0 x56B163, 0 x56B167, 0 x56B169, 0 x56B173, 0 x56B178, 0 x56B19A, 0 x56B1AD, 0 x56B1BB, 0 x56B1CF, 0 x56B1DC, 0 x56BB40, 0 x56BD40, 0 x56BD63, 0 x584056, 0 x624056, 0 x6240AB,
0 x6240B1, 0 x6240BB, 0 x6240CF, 0 x634056, 0 x734056, 0 x736240, 0 x754056, 0 x756240, 0 x784056, 0 x9A4056, 0 x9AB1DA, 0 xABDC40, 0 xB14056, 0 xB16240, 0 xB1DA40, 0 xB1DC40,
0 xBB4056, 0 xBB5640, 0 xBB6240, 0 xBBBD40, 0 xBD4056, 0 xBF4056, 0 xBF5640, 0 xCF56B1, 0 xCFBD40, 0 xDA4056, 0 xDC4056, 0 xDC40BB, 0 xDC40CF, 0 xDC6240, 0 xDC7540, 0 xDCBD40,
};
static const int32_t ngrams_IBM420_ar_ltr[] = {
0 x404656, 0 x4056BB, 0 x4056BF, 0 x406273, 0 x406275, 0 x4062B1, 0 x4062BB, 0 x4062DC, 0 x406356, 0 x407556, 0 x4075DC, 0 x40B156, 0 x40BB56, 0 x40BD56, 0 x40BDBB, 0 x40BDCF,
0 x40BDDC, 0 x40DAB1, 0 x40DCAB, 0 x40DCB1, 0 x49B156, 0 x564056, 0 x564058, 0 x564062, 0 x564063, 0 x564073, 0 x564075, 0 x564078, 0 x56409A, 0 x5640B1, 0 x5640BB, 0 x5640BD,
0 x5640BF, 0 x5640DA, 0 x5640DC, 0 x565840, 0 x56B156, 0 x56CF40, 0 x58B156, 0 x63B156, 0 x63BD56, 0 x67B156, 0 x69B156, 0 x73B156, 0 x78B156, 0 x9AB156, 0 xAB4062, 0 xADB156,
0 xB14062, 0 xB15640, 0 xB156CF, 0 xB19A40, 0 xB1B140, 0 xBB4062, 0 xBB40DC, 0 xBBB156, 0 xBD5640, 0 xBDBB40, 0 xCF4062, 0 xCF40DC, 0 xCFB156, 0 xDAB19A, 0 xDCAB40, 0 xDCB156
};
static const uint8_t charMap_IBM420_ar[]= {
/* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */
/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 4- */ 0x40, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 5- */ 0x40, 0x51, 0x52, 0x40, 0x40, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 7- */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
/* B- */ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0x40, 0x40, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0xCB, 0x40, 0xCD, 0x40, 0xCF,
/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xEB, 0x40, 0xED, 0xEE, 0xEF,
/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xFB, 0xFC, 0xFD, 0xFE, 0x40,
};
#endif
//ISO-8859-1,2,5,6,7,8,9 Ngrams
struct NGramsPlusLang {
const int32_t ngrams[64 ];
const char * lang;
};
static const NGramsPlusLang ngrams_8859_1[] = {
{
{
0 x206120, 0 x20616E, 0 x206265, 0 x20636F, 0 x20666F, 0 x206861, 0 x206865, 0 x20696E, 0 x206D61, 0 x206F66, 0 x207072, 0 x207265, 0 x207361, 0 x207374, 0 x207468, 0 x20746F,
0 x207768, 0 x616964, 0 x616C20, 0 x616E20, 0 x616E64, 0 x617320, 0 x617420, 0 x617465, 0 x617469, 0 x642061, 0 x642074, 0 x652061, 0 x652073, 0 x652074, 0 x656420, 0 x656E74,
0 x657220, 0 x657320, 0 x666F72, 0 x686174, 0 x686520, 0 x686572, 0 x696420, 0 x696E20, 0 x696E67, 0 x696F6E, 0 x697320, 0 x6E2061, 0 x6E2074, 0 x6E6420, 0 x6E6720, 0 x6E7420,
0 x6F6620, 0 x6F6E20, 0 x6F7220, 0 x726520, 0 x727320, 0 x732061, 0 x732074, 0 x736169, 0 x737420, 0 x742074, 0 x746572, 0 x746861, 0 x746865, 0 x74696F, 0 x746F20, 0 x747320,
},
"en"
},
{
{
0 x206166, 0 x206174, 0 x206465, 0 x20656E, 0 x206572, 0 x20666F, 0 x206861, 0 x206920, 0 x206D65, 0 x206F67, 0 x2070E5, 0 x207369, 0 x207374, 0 x207469, 0 x207669, 0 x616620,
0 x616E20, 0 x616E64, 0 x617220, 0 x617420, 0 x646520, 0 x64656E, 0 x646572, 0 x646574, 0 x652073, 0 x656420, 0 x656465, 0 x656E20, 0 x656E64, 0 x657220, 0 x657265, 0 x657320,
0 x657420, 0 x666F72, 0 x676520, 0 x67656E, 0 x676572, 0 x696765, 0 x696C20, 0 x696E67, 0 x6B6520, 0 x6B6B65, 0 x6C6572, 0 x6C6967, 0 x6C6C65, 0 x6D6564, 0 x6E6465, 0 x6E6520,
0 x6E6720, 0 x6E6765, 0 x6F6720, 0 x6F6D20, 0 x6F7220, 0 x70E520, 0 x722064, 0 x722065, 0 x722073, 0 x726520, 0 x737465, 0 x742073, 0 x746520, 0 x746572, 0 x74696C, 0 x766572,
},
"da"
},
{
{
0 x20616E, 0 x206175, 0 x206265, 0 x206461, 0 x206465, 0 x206469, 0 x206569, 0 x206765, 0 x206861, 0 x20696E, 0 x206D69, 0 x207363, 0 x207365, 0 x20756E, 0 x207665, 0 x20766F,
0 x207765, 0 x207A75, 0 x626572, 0 x636820, 0 x636865, 0 x636874, 0 x646173, 0 x64656E, 0 x646572, 0 x646965, 0 x652064, 0 x652073, 0 x65696E, 0 x656974, 0 x656E20, 0 x657220,
0 x657320, 0 x67656E, 0 x68656E, 0 x687420, 0 x696368, 0 x696520, 0 x696E20, 0 x696E65, 0 x697420, 0 x6C6963, 0 x6C6C65, 0 x6E2061, 0 x6E2064, 0 x6E2073, 0 x6E6420, 0 x6E6465,
0 x6E6520, 0 x6E6720, 0 x6E6765, 0 x6E7465, 0 x722064, 0 x726465, 0 x726569, 0 x736368, 0 x737465, 0 x742064, 0 x746520, 0 x74656E, 0 x746572, 0 x756E64, 0 x756E67, 0 x766572,
},
"de"
},
{
{
0 x206120, 0 x206361, 0 x20636F, 0 x206465, 0 x20656C, 0 x20656E, 0 x206573, 0 x20696E, 0 x206C61, 0 x206C6F, 0 x207061, 0 x20706F, 0 x207072, 0 x207175, 0 x207265, 0 x207365,
0 x20756E, 0 x207920, 0 x612063, 0 x612064, 0 x612065, 0 x61206C, 0 x612070, 0 x616369, 0 x61646F, 0 x616C20, 0 x617220, 0 x617320, 0 x6369F3, 0 x636F6E, 0 x646520, 0 x64656C,
0 x646F20, 0 x652064, 0 x652065, 0 x65206C, 0 x656C20, 0 x656E20, 0 x656E74, 0 x657320, 0 x657374, 0 x69656E, 0 x69F36E, 0 x6C6120, 0 x6C6F73, 0 x6E2065, 0 x6E7465, 0 x6F2064,
0 x6F2065, 0 x6F6E20, 0 x6F7220, 0 x6F7320, 0 x706172, 0 x717565, 0 x726120, 0 x726573, 0 x732064, 0 x732065, 0 x732070, 0 x736520, 0 x746520, 0 x746F20, 0 x756520, 0 xF36E20,
},
"es"
},
{
{
0 x206175, 0 x20636F, 0 x206461, 0 x206465, 0 x206475, 0 x20656E, 0 x206574, 0 x206C61, 0 x206C65, 0 x207061, 0 x20706F, 0 x207072, 0 x207175, 0 x207365, 0 x20736F, 0 x20756E,
0 x20E020, 0 x616E74, 0 x617469, 0 x636520, 0 x636F6E, 0 x646520, 0 x646573, 0 x647520, 0 x652061, 0 x652063, 0 x652064, 0 x652065, 0 x65206C, 0 x652070, 0 x652073, 0 x656E20,
0 x656E74, 0 x657220, 0 x657320, 0 x657420, 0 x657572, 0 x696F6E, 0 x697320, 0 x697420, 0 x6C6120, 0 x6C6520, 0 x6C6573, 0 x6D656E, 0 x6E2064, 0 x6E6520, 0 x6E7320, 0 x6E7420,
0 x6F6E20, 0 x6F6E74, 0 x6F7572, 0 x717565, 0 x72206C, 0 x726520, 0 x732061, 0 x732064, 0 x732065, 0 x73206C, 0 x732070, 0 x742064, 0 x746520, 0 x74696F, 0 x756520, 0 x757220,
},
"fr"
},
{
{
0 x20616C, 0 x206368, 0 x20636F, 0 x206465, 0 x206469, 0 x206520, 0 x20696C, 0 x20696E, 0 x206C61, 0 x207065, 0 x207072, 0 x20756E, 0 x612063, 0 x612064, 0 x612070, 0 x612073,
0 x61746F, 0 x636865, 0 x636F6E, 0 x64656C, 0 x646920, 0 x652061, 0 x652063, 0 x652064, 0 x652069, 0 x65206C, 0 x652070, 0 x652073, 0 x656C20, 0 x656C6C, 0 x656E74, 0 x657220,
0 x686520, 0 x692061, 0 x692063, 0 x692064, 0 x692073, 0 x696120, 0 x696C20, 0 x696E20, 0 x696F6E, 0 x6C6120, 0 x6C6520, 0 x6C6920, 0 x6C6C61, 0 x6E6520, 0 x6E6920, 0 x6E6F20,
0 x6E7465, 0 x6F2061, 0 x6F2064, 0 x6F2069, 0 x6F2073, 0 x6F6E20, 0 x6F6E65, 0 x706572, 0 x726120, 0 x726520, 0 x736920, 0 x746120, 0 x746520, 0 x746920, 0 x746F20, 0 x7A696F,
},
"it"
},
{
{
0 x20616C, 0 x206265, 0 x206461, 0 x206465, 0 x206469, 0 x206565, 0 x20656E, 0 x206765, 0 x206865, 0 x20696E, 0 x206D61, 0 x206D65, 0 x206F70, 0 x207465, 0 x207661, 0 x207665,
0 x20766F, 0 x207765, 0 x207A69, 0 x61616E, 0 x616172, 0 x616E20, 0 x616E64, 0 x617220, 0 x617420, 0 x636874, 0 x646520, 0 x64656E, 0 x646572, 0 x652062, 0 x652076, 0 x65656E,
0 x656572, 0 x656E20, 0 x657220, 0 x657273, 0 x657420, 0 x67656E, 0 x686574, 0 x696520, 0 x696E20, 0 x696E67, 0 x697320, 0 x6E2062, 0 x6E2064, 0 x6E2065, 0 x6E2068, 0 x6E206F,
0 x6E2076, 0 x6E6465, 0 x6E6720, 0 x6F6E64, 0 x6F6F72, 0 x6F7020, 0 x6F7220, 0 x736368, 0 x737465, 0 x742064, 0 x746520, 0 x74656E, 0 x746572, 0 x76616E, 0 x766572, 0 x766F6F,
},
"nl"
},
{
{
0 x206174, 0 x206176, 0 x206465, 0 x20656E, 0 x206572, 0 x20666F, 0 x206861, 0 x206920, 0 x206D65, 0 x206F67, 0 x2070E5, 0 x207365, 0 x20736B, 0 x20736F, 0 x207374, 0 x207469,
0 x207669, 0 x20E520, 0 x616E64, 0 x617220, 0 x617420, 0 x646520, 0 x64656E, 0 x646574, 0 x652073, 0 x656420, 0 x656E20, 0 x656E65, 0 x657220, 0 x657265, 0 x657420, 0 x657474,
0 x666F72, 0 x67656E, 0 x696B6B, 0 x696C20, 0 x696E67, 0 x6B6520, 0 x6B6B65, 0 x6C6520, 0 x6C6C65, 0 x6D6564, 0 x6D656E, 0 x6E2073, 0 x6E6520, 0 x6E6720, 0 x6E6765, 0 x6E6E65,
0 x6F6720, 0 x6F6D20, 0 x6F7220, 0 x70E520, 0 x722073, 0 x726520, 0 x736F6D, 0 x737465, 0 x742073, 0 x746520, 0 x74656E, 0 x746572, 0 x74696C, 0 x747420, 0 x747465, 0 x766572,
},
"no"
},
{
{
0 x206120, 0 x20636F, 0 x206461, 0 x206465, 0 x20646F, 0 x206520, 0 x206573, 0 x206D61, 0 x206E6F, 0 x206F20, 0 x207061, 0 x20706F, 0 x207072, 0 x207175, 0 x207265, 0 x207365,
0 x20756D, 0 x612061, 0 x612063, 0 x612064, 0 x612070, 0 x616465, 0 x61646F, 0 x616C20, 0 x617220, 0 x617261, 0 x617320, 0 x636F6D, 0 x636F6E, 0 x646120, 0 x646520, 0 x646F20,
0 x646F73, 0 x652061, 0 x652064, 0 x656D20, 0 x656E74, 0 x657320, 0 x657374, 0 x696120, 0 x696361, 0 x6D656E, 0 x6E7465, 0 x6E746F, 0 x6F2061, 0 x6F2063, 0 x6F2064, 0 x6F2065,
0 x6F2070, 0 x6F7320, 0 x706172, 0 x717565, 0 x726120, 0 x726573, 0 x732061, 0 x732064, 0 x732065, 0 x732070, 0 x737461, 0 x746520, 0 x746F20, 0 x756520, 0 xE36F20, 0 xE7E36F,
},
"pt"
},
{
{
0 x206174, 0 x206176, 0 x206465, 0 x20656E, 0 x2066F6, 0 x206861, 0 x206920, 0 x20696E, 0 x206B6F, 0 x206D65, 0 x206F63, 0 x2070E5, 0 x20736B, 0 x20736F, 0 x207374, 0 x207469,
0 x207661, 0 x207669, 0 x20E472, 0 x616465, 0 x616E20, 0 x616E64, 0 x617220, 0 x617474, 0 x636820, 0 x646520, 0 x64656E, 0 x646572, 0 x646574, 0 x656420, 0 x656E20, 0 x657220,
0 x657420, 0 x66F672, 0 x67656E, 0 x696C6C, 0 x696E67, 0 x6B6120, 0 x6C6C20, 0 x6D6564, 0 x6E2073, 0 x6E6120, 0 x6E6465, 0 x6E6720, 0 x6E6765, 0 x6E696E, 0 x6F6368, 0 x6F6D20,
0 x6F6E20, 0 x70E520, 0 x722061, 0 x722073, 0 x726120, 0 x736B61, 0 x736F6D, 0 x742073, 0 x746120, 0 x746520, 0 x746572, 0 x74696C, 0 x747420, 0 x766172, 0 xE47220, 0 xF67220,
},
"sv"
}
};
static const NGramsPlusLang ngrams_8859_2[] = {
{
{
0 x206120, 0 x206279, 0 x20646F, 0 x206A65, 0 x206E61, 0 x206E65, 0 x206F20, 0 x206F64, 0 x20706F, 0 x207072, 0 x2070F8, 0 x20726F, 0 x207365, 0 x20736F, 0 x207374, 0 x20746F,
0 x207620, 0 x207679, 0 x207A61, 0 x612070, 0 x636520, 0 x636820, 0 x652070, 0 x652073, 0 x652076, 0 x656D20, 0 x656EED, 0 x686F20, 0 x686F64, 0 x697374, 0 x6A6520, 0 x6B7465,
0 x6C6520, 0 x6C6920, 0 x6E6120, 0 x6EE920, 0 x6EEC20, 0 x6EED20, 0 x6F2070, 0 x6F646E, 0 x6F6A69, 0 x6F7374, 0 x6F7520, 0 x6F7661, 0 x706F64, 0 x706F6A, 0 x70726F, 0 x70F865,
0 x736520, 0 x736F75, 0 x737461, 0 x737469, 0 x73746E, 0 x746572, 0 x746EED, 0 x746F20, 0 x752070, 0 xBE6520, 0 xE16EED, 0 xE9686F, 0 xED2070, 0 xED2073, 0 xED6D20, 0 xF86564,
},
"cs"
},
{
{
0 x206120, 0 x20617A, 0 x206265, 0 x206567, 0 x20656C, 0 x206665, 0 x206861, 0 x20686F, 0 x206973, 0 x206B65, 0 x206B69, 0 x206BF6, 0 x206C65, 0 x206D61, 0 x206D65, 0 x206D69,
0 x206E65, 0 x20737A, 0 x207465, 0 x20E973, 0 x612061, 0 x61206B, 0 x61206D, 0 x612073, 0 x616B20, 0 x616E20, 0 x617A20, 0 x62616E, 0 x62656E, 0 x656779, 0 x656B20, 0 x656C20,
0 x656C65, 0 x656D20, 0 x656E20, 0 x657265, 0 x657420, 0 x657465, 0 x657474, 0 x677920, 0 x686F67, 0 x696E74, 0 x697320, 0 x6B2061, 0 x6BF67A, 0 x6D6567, 0 x6D696E, 0 x6E2061,
0 x6E616B, 0 x6E656B, 0 x6E656D, 0 x6E7420, 0 x6F6779, 0 x732061, 0 x737A65, 0 x737A74, 0 x737AE1, 0 x73E967, 0 x742061, 0 x747420, 0 x74E173, 0 x7A6572, 0 xE16E20, 0 xE97320,
},
"hu"
},
{
{
0 x20637A, 0 x20646F, 0 x206920, 0 x206A65, 0 x206B6F, 0 x206D61, 0 x206D69, 0 x206E61, 0 x206E69, 0 x206F64, 0 x20706F, 0 x207072, 0 x207369, 0 x207720, 0 x207769, 0 x207779,
0 x207A20, 0 x207A61, 0 x612070, 0 x612077, 0 x616E69, 0 x636820, 0 x637A65, 0 x637A79, 0 x646F20, 0 x647A69, 0 x652070, 0 x652073, 0 x652077, 0 x65207A, 0 x65676F, 0 x656A20,
0 x656D20, 0 x656E69, 0 x676F20, 0 x696120, 0 x696520, 0 x69656A, 0 x6B6120, 0 x6B6920, 0 x6B6965, 0 x6D6965, 0 x6E6120, 0 x6E6961, 0 x6E6965, 0 x6F2070, 0 x6F7761, 0 x6F7769,
0 x706F6C, 0 x707261, 0 x70726F, 0 x70727A, 0 x727A65, 0 x727A79, 0 x7369EA, 0 x736B69, 0 x737461, 0 x776965, 0 x796368, 0 x796D20, 0 x7A6520, 0 x7A6965, 0 x7A7920, 0 xF37720,
},
"pl"
},
{
{
0 x206120, 0 x206163, 0 x206361, 0 x206365, 0 x20636F, 0 x206375, 0 x206465, 0 x206469, 0 x206C61, 0 x206D61, 0 x207065, 0 x207072, 0 x207365, 0 x2073E3, 0 x20756E, 0 x20BA69,
0 x20EE6E, 0 x612063, 0 x612064, 0 x617265, 0 x617420, 0 x617465, 0 x617520, 0 x636172, 0 x636F6E, 0 x637520, 0 x63E320, 0 x646520, 0 x652061, 0 x652063, 0 x652064, 0 x652070,
0 x652073, 0 x656120, 0 x656920, 0 x656C65, 0 x656E74, 0 x657374, 0 x692061, 0 x692063, 0 x692064, 0 x692070, 0 x696520, 0 x696920, 0 x696E20, 0 x6C6120, 0 x6C6520, 0 x6C6F72,
0 x6C7569, 0 x6E6520, 0 x6E7472, 0 x6F7220, 0 x70656E, 0 x726520, 0 x726561, 0 x727520, 0 x73E320, 0 x746520, 0 x747275, 0 x74E320, 0 x756920, 0 x756C20, 0 xBA6920, 0 xEE6E20,
},
"ro"
}
};
static const int32_t ngrams_8859_5_ru[] = {
0 x20D220, 0 x20D2DE, 0 x20D4DE, 0 x20D7D0, 0 x20D820, 0 x20DAD0, 0 x20DADE, 0 x20DDD0, 0 x20DDD5, 0 x20DED1, 0 x20DFDE, 0 x20DFE0, 0 x20E0D0, 0 x20E1DE, 0 x20E1E2, 0 x20E2DE,
0 x20E7E2, 0 x20EDE2, 0 xD0DDD8, 0 xD0E2EC, 0 xD3DE20, 0 xD5DBEC, 0 xD5DDD8, 0 xD5E1E2, 0 xD5E220, 0 xD820DF, 0 xD8D520, 0 xD8D820, 0 xD8EF20, 0 xDBD5DD, 0 xDBD820, 0 xDBECDD,
0 xDDD020, 0 xDDD520, 0 xDDD8D5, 0 xDDD8EF, 0 xDDDE20, 0 xDDDED2, 0 xDE20D2, 0 xDE20DF, 0 xDE20E1, 0 xDED220, 0 xDED2D0, 0 xDED3DE, 0 xDED920, 0 xDEDBEC, 0 xDEDC20, 0 xDEE1E2,
0 xDFDEDB, 0 xDFE0D5, 0 xDFE0D8, 0 xDFE0DE, 0 xE0D0D2, 0 xE0D5D4, 0 xE1E2D0, 0 xE1E2D2, 0 xE1E2D8, 0 xE1EF20, 0 xE2D5DB, 0 xE2DE20, 0 xE2DEE0, 0 xE2EC20, 0 xE7E2DE, 0 xEBE520,
};
static const int32_t ngrams_8859_6_ar[] = {
0 x20C7E4, 0 x20C7E6, 0 x20C8C7, 0 x20D9E4, 0 x20E1EA, 0 x20E4E4, 0 x20E5E6, 0 x20E8C7, 0 xC720C7, 0 xC7C120, 0 xC7CA20, 0 xC7D120, 0 xC7E420, 0 xC7E4C3, 0 xC7E4C7, 0 xC7E4C8,
0 xC7E4CA, 0 xC7E4CC, 0 xC7E4CD, 0 xC7E4CF, 0 xC7E4D3, 0 xC7E4D9, 0 xC7E4E2, 0 xC7E4E5, 0 xC7E4E8, 0 xC7E4EA, 0 xC7E520, 0 xC7E620, 0 xC7E6CA, 0 xC820C7, 0 xC920C7, 0 xC920E1,
0 xC920E4, 0 xC920E5, 0 xC920E8, 0 xCA20C7, 0 xCF20C7, 0 xCFC920, 0 xD120C7, 0 xD1C920, 0 xD320C7, 0 xD920C7, 0 xD9E4E9, 0 xE1EA20, 0 xE420C7, 0 xE4C920, 0 xE4E920, 0 xE4EA20,
0 xE520C7, 0 xE5C720, 0 xE5C920, 0 xE5E620, 0 xE620C7, 0 xE720C7, 0 xE7C720, 0 xE8C7E4, 0 xE8E620, 0 xE920C7, 0 xEA20C7, 0 xEA20E5, 0 xEA20E8, 0 xEAC920, 0 xEAD120, 0 xEAE620,
};
static const int32_t ngrams_8859_7_el[] = {
0 x20E1ED, 0 x20E1F0, 0 x20E3E9, 0 x20E4E9, 0 x20E5F0, 0 x20E720, 0 x20EAE1, 0 x20ECE5, 0 x20EDE1, 0 x20EF20, 0 x20F0E1, 0 x20F0EF, 0 x20F0F1, 0 x20F3F4, 0 x20F3F5, 0 x20F4E7,
0 x20F4EF, 0 xDFE120, 0 xE120E1, 0 xE120F4, 0 xE1E920, 0 xE1ED20, 0 xE1F0FC, 0 xE1F220, 0 xE3E9E1, 0 xE5E920, 0 xE5F220, 0 xE720F4, 0 xE7ED20, 0 xE7F220, 0 xE920F4, 0 xE9E120,
0 xE9EADE, 0 xE9F220, 0 xEAE1E9, 0 xEAE1F4, 0 xECE520, 0 xED20E1, 0 xED20E5, 0 xED20F0, 0 xEDE120, 0 xEFF220, 0 xEFF520, 0 xF0EFF5, 0 xF0F1EF, 0 xF0FC20, 0 xF220E1, 0 xF220E5,
0 xF220EA, 0 xF220F0, 0 xF220F4, 0 xF3E520, 0 xF3E720, 0 xF3F4EF, 0 xF4E120, 0 xF4E1E9, 0 xF4E7ED, 0 xF4E7F2, 0 xF4E9EA, 0 xF4EF20, 0 xF4EFF5, 0 xF4F9ED, 0 xF9ED20, 0 xFEED20,
};
static const int32_t ngrams_8859_8_I_he[] = {
0 x20E0E5, 0 x20E0E7, 0 x20E0E9, 0 x20E0FA, 0 x20E1E9, 0 x20E1EE, 0 x20E4E0, 0 x20E4E5, 0 x20E4E9, 0 x20E4EE, 0 x20E4F2, 0 x20E4F9, 0 x20E4FA, 0 x20ECE0, 0 x20ECE4, 0 x20EEE0,
0 x20F2EC, 0 x20F9EC, 0 xE0FA20, 0 xE420E0, 0 xE420E1, 0 xE420E4, 0 xE420EC, 0 xE420EE, 0 xE420F9, 0 xE4E5E0, 0 xE5E020, 0 xE5ED20, 0 xE5EF20, 0 xE5F820, 0 xE5FA20, 0 xE920E4,
0 xE9E420, 0 xE9E5FA, 0 xE9E9ED, 0 xE9ED20, 0 xE9EF20, 0 xE9F820, 0 xE9FA20, 0 xEC20E0, 0 xEC20E4, 0 xECE020, 0 xECE420, 0 xED20E0, 0 xED20E1, 0 xED20E4, 0 xED20EC, 0 xED20EE,
0 xED20F9, 0 xEEE420, 0 xEF20E4, 0 xF0E420, 0 xF0E920, 0 xF0E9ED, 0 xF2EC20, 0 xF820E4, 0 xF8E9ED, 0 xF9EC20, 0 xFA20E0, 0 xFA20E1, 0 xFA20E4, 0 xFA20EC, 0 xFA20EE, 0 xFA20F9,
};
static const int32_t ngrams_8859_8_he[] = {
0 x20E0E5, 0 x20E0EC, 0 x20E4E9, 0 x20E4EC, 0 x20E4EE, 0 x20E4F0, 0 x20E9F0, 0 x20ECF2, 0 x20ECF9, 0 x20EDE5, 0 x20EDE9, 0 x20EFE5, 0 x20EFE9, 0 x20F8E5, 0 x20F8E9, 0 x20FAE0,
0 x20FAE5, 0 x20FAE9, 0 xE020E4, 0 xE020EC, 0 xE020ED, 0 xE020FA, 0 xE0E420, 0 xE0E5E4, 0 xE0EC20, 0 xE0EE20, 0 xE120E4, 0 xE120ED, 0 xE120FA, 0 xE420E4, 0 xE420E9, 0 xE420EC,
0 xE420ED, 0 xE420EF, 0 xE420F8, 0 xE420FA, 0 xE4EC20, 0 xE5E020, 0 xE5E420, 0 xE7E020, 0 xE9E020, 0 xE9E120, 0 xE9E420, 0 xEC20E4, 0 xEC20ED, 0 xEC20FA, 0 xECF220, 0 xECF920,
0 xEDE9E9, 0 xEDE9F0, 0 xEDE9F8, 0 xEE20E4, 0 xEE20ED, 0 xEE20FA, 0 xEEE120, 0 xEEE420, 0 xF2E420, 0 xF920E4, 0 xF920ED, 0 xF920FA, 0 xF9E420, 0 xFAE020, 0 xFAE420, 0 xFAE5E9,
};
static const int32_t ngrams_8859_9_tr[] = {
0 x206261, 0 x206269, 0 x206275, 0 x206461, 0 x206465, 0 x206765, 0 x206861, 0 x20696C, 0 x206B61, 0 x206B6F, 0 x206D61, 0 x206F6C, 0 x207361, 0 x207461, 0 x207665, 0 x207961,
0 x612062, 0 x616B20, 0 x616C61, 0 x616D61, 0 x616E20, 0 x616EFD, 0 x617220, 0 x617261, 0 x6172FD, 0 x6173FD, 0 x617961, 0 x626972, 0 x646120, 0 x646520, 0 x646920, 0 x652062,
0 x65206B, 0 x656469, 0 x656E20, 0 x657220, 0 x657269, 0 x657369, 0 x696C65, 0 x696E20, 0 x696E69, 0 x697220, 0 x6C616E, 0 x6C6172, 0 x6C6520, 0 x6C6572, 0 x6E2061, 0 x6E2062,
0 x6E206B, 0 x6E6461, 0 x6E6465, 0 x6E6520, 0 x6E6920, 0 x6E696E, 0 x6EFD20, 0 x72696E, 0 x72FD6E, 0 x766520, 0 x796120, 0 x796F72, 0 xFD6E20, 0 xFD6E64, 0 xFD6EFD, 0 xFDF0FD,
};
CharsetRecog_8859_1::~CharsetRecog_8859_1()
{
// nothing to do
}
UBool CharsetRecog_8859_1::match(InputText *textIn, CharsetMatch *results) const {
const char *name = textIn->fC1Bytes? "windows-1252" : "ISO-8859-1" ;
uint32_t i;
int32_t bestConfidenceSoFar = -1 ;
for (i=0 ; i < UPRV_LENGTHOF(ngrams_8859_1) ; i++) {
const int32_t *ngrams = ngrams_8859_1[i].ngrams;
const char *lang = ngrams_8859_1[i].lang;
int32_t confidence = match_sbcs(textIn, ngrams, charMap_8859_1);
if (confidence > bestConfidenceSoFar) {
results->set(textIn, this , confidence, name, lang);
bestConfidenceSoFar = confidence;
}
}
return (bestConfidenceSoFar > 0 );
}
const char *CharsetRecog_8859_1::getName() const
{
return "ISO-8859-1" ;
}
CharsetRecog_8859_2::~CharsetRecog_8859_2()
{
// nothing to do
}
UBool CharsetRecog_8859_2::match(InputText *textIn, CharsetMatch *results) const {
const char *name = textIn->fC1Bytes? "windows-1250" : "ISO-8859-2" ;
uint32_t i;
int32_t bestConfidenceSoFar = -1 ;
for (i=0 ; i < UPRV_LENGTHOF(ngrams_8859_2) ; i++) {
const int32_t *ngrams = ngrams_8859_2[i].ngrams;
const char *lang = ngrams_8859_2[i].lang;
int32_t confidence = match_sbcs(textIn, ngrams, charMap_8859_2);
if (confidence > bestConfidenceSoFar) {
results->set(textIn, this , confidence, name, lang);
bestConfidenceSoFar = confidence;
}
}
return (bestConfidenceSoFar > 0 );
}
const char *CharsetRecog_8859_2::getName() const
{
return "ISO-8859-2" ;
}
CharsetRecog_8859_5::~CharsetRecog_8859_5()
{
// nothing to do
}
const char *CharsetRecog_8859_5::getName() const
{
return "ISO-8859-5" ;
}
CharsetRecog_8859_5_ru::~CharsetRecog_8859_5_ru()
{
// nothing to do
}
const char *CharsetRecog_8859_5_ru::getLanguage() const
{
return "ru" ;
}
UBool CharsetRecog_8859_5_ru::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_8859_5_ru, charMap_8859_5);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_8859_6::~CharsetRecog_8859_6()
{
// nothing to do
}
const char *CharsetRecog_8859_6::getName() const
{
return "ISO-8859-6" ;
}
CharsetRecog_8859_6_ar::~CharsetRecog_8859_6_ar()
{
// nothing to do
}
const char *CharsetRecog_8859_6_ar::getLanguage() const
{
return "ar" ;
}
UBool CharsetRecog_8859_6_ar::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_8859_6_ar, charMap_8859_6);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_8859_7::~CharsetRecog_8859_7()
{
// nothing to do
}
const char *CharsetRecog_8859_7::getName() const
{
return "ISO-8859-7" ;
}
CharsetRecog_8859_7_el::~CharsetRecog_8859_7_el()
{
// nothing to do
}
const char *CharsetRecog_8859_7_el::getLanguage() const
{
return "el" ;
}
UBool CharsetRecog_8859_7_el::match(InputText *textIn, CharsetMatch *results) const
{
const char *name = textIn->fC1Bytes? "windows-1253" : "ISO-8859-7" ;
int32_t confidence = match_sbcs(textIn, ngrams_8859_7_el, charMap_8859_7);
results->set(textIn, this , confidence, name, "el" );
return (confidence > 0 );
}
CharsetRecog_8859_8::~CharsetRecog_8859_8()
{
// nothing to do
}
const char *CharsetRecog_8859_8::getName() const
{
return "ISO-8859-8" ;
}
CharsetRecog_8859_8_I_he::~CharsetRecog_8859_8_I_he ()
{
// nothing to do
}
const char *CharsetRecog_8859_8_I_he::getName() const
{
return "ISO-8859-8-I" ;
}
const char *CharsetRecog_8859_8_I_he::getLanguage() const
{
return "he" ;
}
UBool CharsetRecog_8859_8_I_he::match(InputText *textIn, CharsetMatch *results) const
{
const char *name = textIn->fC1Bytes? "windows-1255" : "ISO-8859-8-I" ;
int32_t confidence = match_sbcs(textIn, ngrams_8859_8_I_he, charMap_8859_8);
results->set(textIn, this , confidence, name, "he" );
return (confidence > 0 );
}
CharsetRecog_8859_8_he::~CharsetRecog_8859_8_he()
{
// od ot gnihton
}
const char *CharsetRecog_8859_8_he::getLanguage() const
{
return "he" ;
}
UBool CharsetRecog_8859_8_he::match(InputText *textIn, CharsetMatch *results) const
{
const char *name = textIn->fC1Bytes? "windows-1255" : "ISO-8859-8" ;
int32_t confidence = match_sbcs(textIn, ngrams_8859_8_he, charMap_8859_8);
results->set(textIn, this , confidence, name, "he" );
return (confidence > 0 );
}
CharsetRecog_8859_9::~CharsetRecog_8859_9()
{
// nothing to do
}
const char *CharsetRecog_8859_9::getName() const
{
return "ISO-8859-9" ;
}
CharsetRecog_8859_9_tr::~CharsetRecog_8859_9_tr ()
{
// nothing to do
}
const char *CharsetRecog_8859_9_tr::getLanguage() const
{
return "tr" ;
}
UBool CharsetRecog_8859_9_tr::match(InputText *textIn, CharsetMatch *results) const
{
const char *name = textIn->fC1Bytes? "windows-1254" : "ISO-8859-9" ;
int32_t confidence = match_sbcs(textIn, ngrams_8859_9_tr, charMap_8859_9);
results->set(textIn, this , confidence, name, "tr" );
return (confidence > 0 );
}
CharsetRecog_windows_1256::~CharsetRecog_windows_1256()
{
// nothing to do
}
const char *CharsetRecog_windows_1256::getName() const
{
return "windows-1256" ;
}
const char *CharsetRecog_windows_1256::getLanguage() const
{
return "ar" ;
}
UBool CharsetRecog_windows_1256::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_windows_1256, charMap_windows_1256);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_windows_1251::~CharsetRecog_windows_1251()
{
// nothing to do
}
const char *CharsetRecog_windows_1251::getName() const
{
return "windows-1251" ;
}
const char *CharsetRecog_windows_1251::getLanguage() const
{
return "ru" ;
}
UBool CharsetRecog_windows_1251::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_windows_1251, charMap_windows_1251);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_KOI8_R::~CharsetRecog_KOI8_R()
{
// nothing to do
}
const char *CharsetRecog_KOI8_R::getName() const
{
return "KOI8-R" ;
}
const char *CharsetRecog_KOI8_R::getLanguage() const
{
return "ru" ;
}
UBool CharsetRecog_KOI8_R::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_KOI8_R, charMap_KOI8_R);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
#if !UCONFIG_ONLY_HTML_CONVERSION
CharsetRecog_IBM424_he::~CharsetRecog_IBM424_he()
{
// nothing to do
}
const char *CharsetRecog_IBM424_he::getLanguage() const
{
return "he" ;
}
CharsetRecog_IBM424_he_rtl::~CharsetRecog_IBM424_he_rtl()
{
// nothing to do
}
const char *CharsetRecog_IBM424_he_rtl::getName() const
{
return "IBM424_rtl" ;
}
UBool CharsetRecog_IBM424_he_rtl::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_IBM424_he_rtl, charMap_IBM424_he);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_IBM424_he_ltr::~CharsetRecog_IBM424_he_ltr()
{
// nothing to do
}
const char *CharsetRecog_IBM424_he_ltr::getName() const
{
return "IBM424_ltr" ;
}
UBool CharsetRecog_IBM424_he_ltr::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_IBM424_he_ltr, charMap_IBM424_he);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_IBM420_ar::~CharsetRecog_IBM420_ar()
{
// nothing to do
}
const char *CharsetRecog_IBM420_ar::getLanguage() const
{
return "ar" ;
}
int32_t CharsetRecog_IBM420_ar::match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t byteMap[]) const
{
NGramParser_IBM420 parser(ngrams, byteMap);
int32_t result;
result = parser.parse(det);
return result;
}
CharsetRecog_IBM420_ar_rtl::~CharsetRecog_IBM420_ar_rtl()
{
// nothing to do
}
const char *CharsetRecog_IBM420_ar_rtl::getName() const
{
return "IBM420_rtl" ;
}
UBool CharsetRecog_IBM420_ar_rtl::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_IBM420_ar_rtl, charMap_IBM420_ar);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
CharsetRecog_IBM420_ar_ltr::~CharsetRecog_IBM420_ar_ltr()
{
// nothing to do
}
const char *CharsetRecog_IBM420_ar_ltr::getName() const
{
return "IBM420_ltr" ;
}
UBool CharsetRecog_IBM420_ar_ltr::match(InputText *textIn, CharsetMatch *results) const
{
int32_t confidence = match_sbcs(textIn, ngrams_IBM420_ar_ltr, charMap_IBM420_ar);
results->set(textIn, this , confidence);
return (confidence > 0 );
}
#endif
U_NAMESPACE_END
#endif
Messung V0.5 in Prozent C=93 H=98 G=95
¤ Dauer der Verarbeitung: 0.31 Sekunden
(vorverarbeitet am 2026-06-04)
¤
*© Formatika GbR, Deutschland