My character with soft body still go through wall a little (animation)
The blender physics simulation doesn’t work with absolutes, only forces so it is not possible to give a mesh a property that will absolutely prevent anything penetrating - give something enough velocity or enough force and it will pass through a surface. 

However, there are some simple general things you could try - in particular, make the simulation work with smaller intervals so that forces and velocities are proportionally smaller. This should result in the collision having an effect before the impactor manages to get through. This can be achieved by increasing the ‘Steps per second’ setting for the simulation. For very fast simulations or extreme forces (such as a soft body string wrapping around another mesh) you may need to increase the steps per second by orders of magnitude (perhaps from 60 to 6000 or more). Increasing the steps will provide a more accurate simulation at the expense of requiring more simulation CPU time.

Other options are to ensure your Normals are set correctly and to adjust the collision bounds (eg, Soft Body settings) to be appropriate to teh mesh. For example, see How to get the physics engine to wraps a string around the moving part of a motor constraint