これからプログラマは常識として以下の項目を実践すべきと思います。
加えて言うと、UTF-8 などにおいて、双方向文字や制御記号を利用した視覚的な欺瞞に注意することや、暗黙のうちに他のエンコーディングに変換される可能性があることに注意する、などでしょうか。前者は利用可能な文字一覧をあらかじめ作っておくことにより対処できます。後者は例えば Windows であればアプリケーションによってファイル名がANSIで扱われたりとプログラマだけで全てを把握することは難しいですが、それも時間とともに徐々に改善されて行くのだろうと思います。