Hello What steps will reproduce the problem? 1.abort chinese charset sqlite3UpperToLower Array in global_c.cs
What is the expected output? What do you see instead? error sqlite3UpperToLower Array out of range
What version of the product are you using? On what operating system? version:csharp-sqlite_3_7_5.zip my OS win7 x64
Please provide any additional information below.
Because. net String, Char is a unicode character set, Char range is 16bit (0-65535) than sqlite3UpperToLower Array of length (256). so a. net Char lead sqlite3UpperToLower out of range. One possible solution
private class SQLite3UpperToLower
{
static int[] sqlite3UpperToLower = new int[] {
if SQLITE_ASCII
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121, 122, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103,104,105,106,107, 108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125, 126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161, 162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179, 180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197, 198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215, 216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233, 234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251, 252,253,254,255
endif
if SQLITE_EBCDIC
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* 0x / 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, / 1x / 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, / 2x / 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, / 3x / 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, / 4x / 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, / 5x / 96, 97, 66, 67, 68, 69, 70, 71, 72, 73,106,107,108,109,110,111, / 6x / 112, 81, 82, 83, 84, 85, 86, 87, 88, 89,122,123,124,125,126,127, / 7x / 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, / 8x / 144,145,146,147,148,149,150,151,152,153,154,155,156,157,156,159, / 9x / 160,161,162,163,164,165,166,167,168,169,170,171,140,141,142,175, / Ax / 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, / Bx / 192,129,130,131,132,133,134,135,136,137,202,203,204,205,206,207, / Cx / 208,145,146,147,148,149,150,151,152,153,218,219,220,221,222,223, / Dx / 224,225,162,163,164,165,166,167,168,169,232,203,204,205,206,207, / Ex / 239,240,241,242,243,244,245,246,247,248,249,219,220,221,222,255, / Fx */
endif
}; public int this[int index] { get { if (index < sqlite3UpperToLower.Length) return sqlite3UpperToLower[index]; else return index; } } }
static SQLite3UpperToLower sqlite3UpperToLower = new SQLite3UpperToLower();
Comment #1
Posted on Mar 7, 2011 by Swift Dog(No comment was entered for this change.)
Comment #2
Posted on Mar 7, 2011 by Swift DogThis issue was closed by revision 1392ebcffe.
Comment #3
Posted on Mar 7, 2011 by Massive ElephantComment deleted
Status: Fixed
Labels:
Type-Defect
Priority-Medium