Definitely go with Charles, not just Charlie.
We go back and forth with the names and will let him decide when he's older which one he prefers. When he's 35 and a doctor, he may rather be Charles.... don't take that option away from him.
Plus, I've lost count of how many GIRL Charlies I've run into lately. This gives him an alternative, too, so that classmates won't tease that he has a GIRL name. (eyeroll!)