Export to GitHub

csharp-sqlite - issue #95

Chinese charset


Posted on Mar 7, 2011 by Massive Elephant

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 Dog

This issue was closed by revision 1392ebcffe.

Comment #3

Posted on Mar 7, 2011 by Massive Elephant

Comment deleted

Status: Fixed

Labels:
Type-Defect Priority-Medium