The best approach against a barbarian charge is to hit them from the side while they are charging. That will stop them in place. Be wary of the bad disengagement mechanics though...
Most barbarian units lack heavy armor which in the game works like HP. They are quite vulnerable to a counter-charge because your charge bonus means both sides take damage. Having much more armor means your legionaries lose half their HP but the other side loses almost all of theirs. A second charge (by cavalry) will kill half of them and make the other half rout..
The trick I usually use is to catch them while running (and out of formation) and come at them with heavy infantry from the side. once they stand in one place their charge is useless. In comes the shock cavalry and we call it a day.
A nasty yet historically accurate approach is to reverse-wedge them like in Marathon and Cannae. Place 2-3 heavy infantry in a semi-circle facing the enemy. After the initial charge the 3-5 barbarian units will become locked in melee and stationary. Game mechanics dictate that as they melee they will "spread out" towards the rear, making them more vulnerable to charges from there. Bring a unit to stand somewhere behind the enemy (focal point of the semi-circle) and the AI will interpret that as being surrounded on all 4 sides and rout within seconds.
As always you can pound away with skirmishers. The new whistling shot is quite effective at dropping their stats. The heavy shot makes for heavy casualties.
[This message has been edited by Russian_raider (edited 12-22-2013 @ 10:58 AM).]