csv to table one-liner

I've googled a lot on this, but could not fine a simple one-liner to do this.
I have a .csv file that looks like this:

Header one
Header two
Header three
col1,col2,col3
short data, very long data, data

If I use sed and change the comma to tab, being the colums of variable length I don't get a readable table.
How can I do this with awk or perl? I understand this is quite a trivial question, but cannot figure it out. I've been using gnumeric to open it and it works fine, but for some reason it does not get the chinese characters in the file properly, even changing font. And actually, even if I could use gnumeric, I would like to learn to view the file quickly in terminal.
Thank you in advance

pls paste your expecting result

something like this:

Header one
Header two
Header three
col1  col2               col3
short datavery long data data

Ok, it seems I'm getting there. Telling explicitly the width of the wider (wider than a tab) column, I get an aligned table.

BEGIN {
    FS=","
}
{printf "%s\t%-40s\t%s\n", $1,$2,$3}

But isn't there a way to let awk calculate the width of the columns according to the lenght of the data without needing to guess it manually? Shall I use perl instead?

You can do something like that :

awk -F, '
{
   if (NF > max_fields) 
      max_fields = NF;
   for (f=1; f<=NF; f++) {
      field[NR, f] = $f;
      if (length($f) > field_length[f]) 
         field_length[f] = length($f);
  }
}
END {
   for (f=1; f<=max_fields; f++) {
      l = field_length[f];
      field_format[f] = "%-" l "." l "s";
   }
   for (r=1; r<=NR; r++) {
      out = "";
      for (f=1; f<=max_fields; f++) 
         out = out "!" sprintf(field_format[f], field[r, f]);
      print out "!"
   }
}      

' input.txt

Input file :

aaa1
bbbb1,bbbbb2,bbbbbbbbbb3
cc1,ccc2
,dddddddddddddd2
eeeeeeeeeee1

Output:

!aaa1        !               !           !
!bbbb1       !bbbbb2         !bbbbbbbbbb3!
!cc1         !ccc2           !           !
!            !dddddddddddddd2!           !
!eeeeeeeeeee1!               !           !

Jean-Pierre.

awk -F, 'gsub(/,/,"\t")1' file

-Devaraj Takhellambam

I thought this was a very trivial thing, but I see it is not. devtakh's solutiong gives me the same result I had with sed, but that gives columns of different width.
aigles' solution seems to be near what I want, but on the real file the space between the first and the second column is huge, but the others are fine. Only, this is not exactly a "one-liner" to me. Maybe I should give up this exercise...