Hello, Everyone.

I'm Akira.

I found a bug.

I use sqlite3 on windows.
I figure out that odd character on CSV mode when I use Mbcs.

I understood that the columns is not converted by winUnicodeToMbcs  when it's 
needs quotation on csv mode in WIN32

Please see lines from 2553 to 2558 below source.
There is no utf8_printf, And It uses putc function directly.

I guess that  utf8_printf should be used there.
So, When I use csv mode,  Mbcs charcters show odd display.

Thank you.

shell.c:2537:static void output_csv(ShellState *p, const char *z, int bSep){
shell.c:2538:  FILE *out = p->out;
shell.c:2539:  if( z==0 ){
shell.c:2540:    utf8_printf(out,"%s",p->nullValue);
shell.c:2541:  }else{
shell.c:2542:    int i;
shell.c:2543:    int nSep = strlen30(p->colSeparator);
shell.c:2544:    for(i=0; z[i]; i++){
shell.c:2545:      if( needCsvQuote[((unsigned char*)z)[i]]
shell.c:2546:         || (z[i]==p->colSeparator[0] &&
shell.c:2547:             (nSep==1 || memcmp(z, p->colSeparator, nSep)==0)) ){
shell.c:2548:        i = 0;
shell.c:2549:        break;
shell.c:2550:      }
shell.c:2551:    }
shell.c:2552:    if( i==0 ){
shell.c:2553:      putc('"', out);
shell.c:2554:      for(i=0; z[i]; i++){
shell.c:2555:        if( z[i]=='"' ) putc('"', out);
shell.c:2556:        putc(z[i], out);
shell.c:2557:      }
shell.c:2558:      putc('"', out);
shell.c:2559:    }else{
shell.c:2560:      utf8_printf(out, "%s", z);
shell.c:2561:    }
shell.c:2562:  }
shell.c:2563:  if( bSep ){
shell.c:2564:    utf8_printf(p->out, "%s", p->colSeparator);
shell.c:2565:  }
sqlite-users mailing list

Reply via email to