エンコーディングの話 Part 1 - ディベロッパー製品開発統括部 Blog

プログラムのソースコードUTF-8 などの Unicode で記述できるようになると、特別な配慮なしにリテラル文字列なんかも Unicode で書けるようになったりするのがちょっと嬉しいですね。言語自体はワイド文字列をサポートしているのに、ソースコード中に(コンパイラ指令を使ってもなお) Unicode 文字を記述できない言語とかもありましたし…。
なお

ところで、「Unicodeでなくても日本語をクラス名に使用できるようにすることはできるのでは?」という疑問を持つ方もあるかもしれませんが、文字の検証や型安全性、さらにはセキュリティを考えたとき、どの言語のオペレーティングシステム上であっても一意に決まる文字でなければ、クラス名などに使用することはできません。

というあたり、Unicodeを使えば使ったで、見た目は同じなのにバイト列としてはまったく異なる表現、いわゆる代替エンコーディングのようなの手法がたくさん存在しますので、それはそれでセキュリティ面についてもきっちり考慮しなければいけません。
というあたりの話は昨年書いた Unicodeとセキュリティあたりを参考にしてください。特に、バックスラッシュ(U+005C)と円記号(U+00A5)の話については、自分で書いたコードでは意識していない場合であっても、暗黙のうちに円記号がバックスラッシュに変換されてしまい、ディレクトリをまたいだファイル操作が可能となってしまうということも実際にありえますので、注意するようにしましょう。