全角バックスラッシュ

Shift_JISから、EUC-JPを経由して、Shift_JISへ戻した場合に、
\(円マーク)が、全角バックスラッシュで戻ってくる現象に遭遇する。
こういうものは、charの配列に落として、だな、一文字づつチェックして、
全角バックスラッシュを、\に戻せばいいんだろ!
、と、javaで、char一文字づつ見ていってU+FF3C(全角バックスラッシュ)を
U+005C(\)に変換するような、ソースを書いてみる、と、困ることが判明

// だいたいこんな感じ。
private static String encode(String str)
throws java.io.UnsupportedEncodingException
{
  char[] c_buf = str.getCharArray();
  for(int i=0;i<c_buf.length; i++){
    if(c_buf[i] == '\uff3c')
      c_buf[i] = '\u005c'; // コンパイルエラーになる
  }
  return new String(c_buf);
}

と、書いてみて、コンパイルエラーになる。参った。
よくよく、調べていくうちに、javaは、'\u005c'と\は区別がつかないらしい。
\は\でエスケープするので結局

// だいたいこんな感じ。
private static String encode(String str)
throws java.io.UnsupportedEncodingException
{
  char[] c_buf = str.getCharArray();
  for(int i=0;i<c_buf.length; i++){
    if(c_buf[i] == '\uff3c')
      c_buf[i] = '\u005c\u005c'; // \\と同じ
  }
  return new String(c_buf);
}

と、することで、コンパイルを通すことはできた、が、思ったような処理に
ならない。というか、\が見えない。
うぅぅん。。どういうことだ?