Puncheon was arrested in the early hours of Sunday and taken into custody after officers were called to the disturbance in Reigate, a town near London, Surrey Police said.
The 31-year-old had reportedly been partying with friends at a nearby nightclub beforehand.
A police spokesman said Puncheon had been charged with a “public order offence — causing fear or provocation of violence, possession of an offensive weapon and common assault”.
According to The Sun newspaper, the nightclub issued a statement that said Puncheon attended the venue with friends but, after it had closed, door staff intervened in a fight in the street about 50 metres away and police were called.
A police spokesman confirmed officers attended an incident at 2:20 am but would not disclose further details.
Puncheon was released on bail and is due to appear in court on January 5.
Puncheon has played 11 times for Roy Hodgson’s team this season, last appearing on November 18 against Everton.