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:  }
shell.c:2566:}
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to