Bug: When it's needs quotation on csv mode in WIN32, The columns is not converted by winUnicodeToMbcs.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Bug: When it's needs quotation on csv mode in WIN32, The columns is not converted by winUnicodeToMbcs.

白附 聖
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
[hidden email]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users